chromeæ¡å¼µã§ãµã¤ãå´ã§ã®javascript å®è¡
chromeæ¡å¼µã§ã¯ãµã¤ãå´ã®Javascriptã«ã¯ã¢ã¯ã»ã¹ãããã¨ãã§ããªãã®ã§ã
bookmarkletã«ãã¦æµãè¾¼ãã ããscriptè¦ç´ ãDOMæä½ã§è¿½å ããããã¦æµãè¾¼ã
ã¾ãããµã¤ãå´ã®ã¹ã¯ãªããããchromeæ¡å¼µã«ã¤ãã³ããªã©ãæ»ããã¨ãã§ããªãã®ã§ããã®å ´åã¯ã«ã¹ã¿ã ã¤ãã³ããçæãã¦å¯¾å¿ãã
- â» ã¤ãã³ãåããajaxCompleteããããajaxCompleteChromeãã«ä¿®æ£ããajaxCompleteãã®ã¤ãã³ãåã¯å¤§å ã®jQueryå´ã§ååã®ã¤ãã³ãã§å®ç¾©ããã¦ããã®ã§ä½¿ããªãã
- ãµã¤ãå´ã«ã¹ã¯ãªãããéãè¾¼ãã¡ã½ãã
function sendScript(code) { var id = 'fromContentScripts'; var elm = document.getElementById(id); if (elm != null) { document.body.removeChild(elm); } elm = document.createElement('script'); elm.type = 'text/javascript'; elm.text = '(' + code.toString() + ')();'; elm.id = id; document.body.appendChild(elm); document.body.removeChild(elm); }
- ãµã¤ãå´ã®jQueryã«ajaxCompleteãè¨å®
sendScript( function () { setTimeout( function(){ var e = document.createEvent('Event'); e.initEvent('ajaxCompleteChrome', true, true); $(document).ajaxComplete(function () { document.body.dispatchEvent(e); }); },1000 ) } );
â» setTimeoutã§1ç§å¾ã«è¨å®ãã¦ããã®ã¯ãµã¤ãå´ã«ã¹ã¯ãªãããéãè¾¼ãã æç¹ã§ã¯ãä½æ ãjQueyãªãã¸ã§ã¯ããã§ãã¦ããªãã£ãçºããµã¤ãã«ãã£ã¦ã¯å¿ è¦ãªãã¯ãã
- content_scriptså´ã§ajaxCompleteã¤ãã³ããåãåã
document.body.addEventListener('ajaxCompleteChrome', function () { . . . });
追è¨
- è²ã ããã©ããããã¨ããªãã¦ãchrome.webRequest.onCompleted ã§httpéä¿¡å®äºãåå¾ããã°ãããã¨ã«æ°ãä»ããããããFA
åè
- Chrome Extension のcontent scriptでの変数隔離に対応する。 - それマグで!
- いまさらまとめるChrome ExtensionでのJavaScript挿入 - console.lealog();
- javascript - Chromeの拡張機能のJavaScriptをサイト内のJavaScriptよりも早く実行したい - スタック・オーバーフロー
- Google グループ â ãµã¤ãå´ããchromeå´ã¸ã®æ»ãæ¹
- javascript - Add a "hook" to all AJAX requests on a page - Stack Overflow â ajaxCompleteã®ãµã¤ãå´ããchromeå´ã¸ã®ã¤ãã³ãã®æ»ãæ¹
- Chrome拡張でページのグローバル変数にアクセスしたい|UTAGE.WORKS カワシマ [フリーランスウェブクリエイター]|note