هل تريد تحميل JS خارجي من التطبيق المختصر؟
-
01-07-2019 - |
سؤال
كيف يمكنني تحميل ملف 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');
});
لا تنتمي إلى StackOverflow