문제

어떻게 외부 자바 스크립트 파일을 사용하는 북마클릿?이를 극복 URL 길이의 제한 IE 일반적으로 유지하기.

도움이 되었습니까?

해결책

2015Update

콘텐츠 보안 정책 면 이러한 현상을 방지할 수 있습니다 작업에서 많은 사이트에 지금이다.예를 들어,아래 코드에서 작동하지 않습니다 Facebook.

2008 응답

사용하는 북마클릿을 생성하는 스크립트 태그를 포함하는 외부 JS.

으로 샘플:

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

다른 팁

파이어 폭스와 아마도 다른 사람은 지원을 북마클릿을 여러,필요한 라이너입니다.할 때는 붙여서 코드 그것은 단지 대바꿈으로 공간이 있습니다.

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

난 항상 사용하려 인기 있는 오픈 소스 프로젝트 loadjs

그것은 크로스 브라우저을 테스트하고 더 많은 기능을 가지고있/편의 특징이다.

그래서 코드는 다음과 같이 표시됩니다:

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