سؤال

كيف يمكنني تحميل ملف JavaScript خارجي باستخدام تطبيق مرجعي؟سيؤدي هذا إلى التغلب على قيود طول عنوان URL الخاصة بـ IE والحفاظ على نظافة الأمور بشكل عام.

هل كانت مفيدة؟

المحلول

تحديث 2015

سياسة أمان المحتوى سيمنع هذا من العمل في العديد من المواقع الآن.على سبيل المثال، لن يعمل الكود أدناه على فيسبوك.

الجواب 2008

استخدم إشارة مرجعية تنشئ علامة برنامج نصي تتضمن JS الخارجي الخاص بك.

كعينة:

javascript:(function(){document.body.appendChild(document.createElement('script')).src='** your external file URL here **';})();

نصائح أخرى

يدعم Firefox وربما غيره الإشارات المرجعية متعددة الأسطر، ولا حاجة لخط واحد.عند لصق الكود، فإنه يستبدل الأسطر الجديدة بمسافات.

javascript:
var q = document.createElement('script');
q.src = 'http://svnpenn.github.io/bm/yt.js';
document.body.appendChild(q);
void 0;

مثال

أفضل دائمًا استخدام مشروع مفتوح المصدر شائع تحميل

تم اختباره عبر المتصفحات ويحتوي على المزيد من ميزات الوظائف/الراحة.

لذلك سيبدو الكود كالتالي:

loadjs=function(){function e(e,n){var t,r,i,c=[],o=(e=e.push?e:[e]).length,f=o;for(t=function(e,t){t.length&&c.push(e),--f||n(c)};o--;)r=e[o],(i=s[r])?t(r,i):(u[r]=u[r]||[]).push(t)}function n(e,n){if(e){var t=u[e];if(s[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function t(e,n,r,i){var o,s,u=document,f=r.async,a=(r.numRetries||0)+1,h=r.before||c;i=i||0,/(^css!|\.css$)/.test(e)?(o=!0,(s=u.createElement("link")).rel="stylesheet",s.href=e.replace(/^css!/,"")):((s=u.createElement("script")).src=e,s.async=void 0===f||f),s.onload=s.onerror=s.onbeforeload=function(c){var u=c.type[0];if(o&&"hideFocus"in s)try{s.sheet.cssText.length||(u="e")}catch(e){u="e"}if("e"==u&&(i+=1)<a)return t(e,n,r,i);n(e,u,c.defaultPrevented)},!1!==h(e,s)&&u.head.appendChild(s)}function r(e,n,r){var i,c,o=(e=e.push?e:[e]).length,s=o,u=[];for(i=function(e,t,r){if("e"==t&&u.push(e),"b"==t){if(!r)return;u.push(e)}--o||n(u)},c=0;c<s;c++)t(e[c],i,r)}function i(e,t,i){var s,u;if(t&&t.trim&&(s=t),u=(s?i:t)||{},s){if(s in o)throw"LoadJS";o[s]=!0}r(e,function(e){e.length?(u.error||c)(e):(u.success||c)(),n(s,e)},u)}var c=function(){},o={},s={},u={};return i.ready=function(n,t){return e(n,function(e){e.length?(t.error||c)(e):(t.success||c)()}),i},i.done=function(e){n(e,[])},i.reset=function(){o={},s={},u={}},i.isDefined=function(e){return e in o},i}();
loadjs('//path/external/js', {
    success: function () {
        console.log('something to run after the script was loaded');
    });
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top