PDA

View Full Version : مبتدی: نخواندن یک اسکریپت ساده



mhjbarnamenevis
سه شنبه 30 دی 1399, 23:31 عصر
به نام خدا.
سلام.
من یک پرونده ساده جاواسکریپت ساختم به نام mmmmmm.js با محتویات زیر:
function thisFunction(){ return "hhhhhhhhhhhhhh";}
b = 88888;
c = 1111111111111;
تو سایت yourjavascript.com بارگزاری‌اش کردم.
حالا می‌خوام روی یک html آزمایشش کنم:

یک سایت را باز می‌کنم.
کنسول را (با زدن Ctrl+Shift+I) می‌آورم.
با وارد کردن عبارت‌های زیر اسکریپت خودم را به هدر اضافه می‌کنم:

filePath = 'http://yourjavascript.com/2011124314/mmmmmm.js';
document.head.innerHTML += '<script type="text/javascript" src="' + filePath + '"></script>';
۴. در اینجا می‌بینم که تگ مروبطه به درستی سر جایش قرار گرفته.
https://i.vgy.me/UdhKUX.png
همان‌گونه که می‌بینید کد زیر در تصویر بالا مشهود است:

<script type="text/javascript" src="http://yourjavascript.com/2011124314/mmmmmm.js"></script>
۵. ولی نمی‌دانم چرا کار نمی‌کند. زمانی که در کنسول می‌زنم: thisFunction() می‌گوید thisFunction is not defined (که در تصویر هم مشهود است.) (متغیر c را هم نمی‌شناسد. متغیر b را هم که در سایت اصلی معرفی شده تغییر نمی‌دهد.)

کسی می‌داند مشکل از کجاست؟؟؟؟
:متفکر:

سپاس.
یا علی.

mhjbarnamenevis
سه شنبه 30 دی 1399, 23:43 عصر
به نام خدا.
سلام.


این مشکل حل شد. ولی مشکل دیگری هست.
----------------------------
راه حل مشکل بالا (برای دوستانی که ممکن است مراجعه کنند) این است که به جای
filePath = 'http://yourjavascript.com/2011124314/mmmmmm.js';
document.head.innerHTML += '<script type="text/javascript" src="' + filePath + '"></script>';
نوشتم
filePath = 'http://yourjavascript.com/2011124314/mmmmmm.js'; script = document.createElement('script');
script.type = 'text/javascript';
script.src =filePath;
document.head.appendChild(script);
-----------------------------
اما مشکلی که هست این است که اگر متن زیر درون پرونده باشد:
// بسم الله الرحمن الرحیمfunction thisFunction(){
return "hhhhhhhhhhhhhh";
}


MyObject = {} ;
MyObject.MyFunction = thisFunction;


b = 88888;
c = 1111111111111;
هر چند این را کنسول شناسایی می‌کند:
thisFunction()
ولی این را شناسایی نمی‌کند:
MyObject.MyFunction()
!
خود MyObject را شناسایی می‌کند. ولی تابع درونش را نه.

:متفکر::متفکر::متفکر:

ایرادی که می‌گیرد:

Uncaught TypeError: MyObject.MyFunction is not a function
at <anonymous>:1:10