Ash*_*tal 1 google-chrome google-chrome-extension google-chrome-devtools
我正在为chrome浏览器编写扩展,我想为window resize事件添加事件监听器.我正在为窗口加载事件执行我的方法,但没有获取resize事件.
下面提到的是manifest.json文件的代码
{
"name": "A browser action",
"version": "1.0",
"background": { "scripts": ["background.js"] },
"permissions": [
"tabs", "http://*/*"
],
"manifest_version": 2
}
Run Code Online (Sandbox Code Playgroud)
下面提到的是我的background.js文件的代码.
var myExtension =
{
init: function()
{
// The event can be DOMContentLoaded, pageshow, pagehide, load or unload.
alert("ASHSIH");
window.addEventListener("resize", this.onmyPageResize, false);
},
onmyPageResize: function(aEvent)
{
alert("RESIZED");
}
}
window.addEventListener("load", function load(event){
window.removeEventListener("load", load, false); //remove listener, no longer needed
myExtension.init();
},false);
Run Code Online (Sandbox Code Playgroud)
Chrome-o-Tile是在其内容脚本中侦听调整大小的扩展的一个示例.
在manifest.json中:
"content_scripts": [
{
"js": ["contentscript.js"],
"run_at": "document_start",
"matches": [
"<all_urls>"
]
}
],
Run Code Online (Sandbox Code Playgroud)
在contentscript.js中:
'use strict';
var timeoutId = 0;
window.addEventListener('resize', function() {
if (timeoutId) {
clearTimeout(timeoutId);
}
timeoutId = setTimeout(function() {
chrome.runtime.sendMessage({method: 'resize'});
timeoutId = 0;
}, 100);
}, false);
Run Code Online (Sandbox Code Playgroud)
在background.js中:
chrome.runtime.onMessage.addListener(function requested(request) {
if (request.method === 'resize') {
...
}
)};
Run Code Online (Sandbox Code Playgroud)
还有一个未解决的问题是为Chrome扩展程序实施chrome.windows.onResize事件.
| 归档时间: |
|
| 查看次数: |
3476 次 |
| 最近记录: |