Javascript 如何在chrome浏览器中获得窗口调整通知
我正在为Chrome浏览器编写一个扩展,我想为窗口调整大小事件添加一个事件侦听器。我的方法正在为窗口加载事件执行,但没有为调整大小事件执行 下面是我的manifest.json文件的代码Javascript 如何在chrome浏览器中获得窗口调整通知,javascript,google-chrome,google-chrome-extension,google-chrome-devtools,Javascript,Google Chrome,Google Chrome Extension,Google Chrome Devtools,我正在为Chrome浏览器编写一个扩展,我想为窗口调整大小事件添加一个事件侦听器。我的方法正在为窗口加载事件执行,但没有为调整大小事件执行 下面是我的manifest.json文件的代码 { "name": "A browser action", "version": "1.0", "background": { "scripts": ["backgrou
{
"name": "A browser action",
"version": "1.0",
"background": { "scripts": ["background.js"] },
"permissions": [
"tabs", "http://*/*"
],
"manifest_version": 2
}
下面是我的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);
您可以使用jQuery的
bind()
函数
您可以使用jQuery的
bind()
函数
background.js文件无法捕获浏览器中的调整大小事件。您需要为此插入一个。background.js文件无法在浏览器中捕获调整大小事件。您需要为此注入一个扩展。是在其内容脚本中侦听resize的扩展的一个示例 在manifest.json中:
"content_scripts": [
{
"js": ["contentscript.js"],
"run_at": "document_start",
"matches": [
"<all_urls>"
]
}
],
在background.js中:
chrome.runtime.onMessage.addListener(function requested(request) {
if (request.method === 'resize') {
...
}
)};
还有一个悬而未决的问题需要实现。是在其内容脚本中侦听resize的扩展的一个示例
在manifest.json中:
"content_scripts": [
{
"js": ["contentscript.js"],
"run_at": "document_start",
"matches": [
"<all_urls>"
]
}
],
在background.js中:
chrome.runtime.onMessage.addListener(function requested(request) {
if (request.method === 'resize') {
...
}
)};
还有一个有待解决的问题。对于这个问题的未来读者,chrome.windowsAPI提供了一个
onBoundsChanged
事件:
onBoundsChanged(自Chrome 86起)
在调整窗口大小时激发;此事件仅在提交新边界时被调度,而不用于正在进行的更改
以下是事件的使用方式:chrome.windows.onBoundsChanged.addListener(callback())
(确保manifest.json
文件声明了选项卡
权限)
对于这个问题的未来读者,
chrome.windows
API提供了一个onBoundsChanged
事件:
onBoundsChanged(自Chrome 86起)
在调整窗口大小时激发;此事件仅在提交新边界时被调度,而不用于正在进行的更改
以下是事件的使用方式:chrome.windows.onBoundsChanged.addListener(callback())
(确保manifest.json
文件声明了选项卡
权限)
您是否尝试过
document.addEventListener('resize',…)
?是否尝试过在函数变量标识符中不使用此
?看起来您正确地使用了它,但它增加了一个额外的东西,在您的示例中可能会出错。没有它,您的测试用例会更简单。谢谢您的建议。我尝试了这两种方法,但没有为我调用resize事件。是否尝试了文档。addEventListener('resize',…)
?是否尝试过在函数变量标识符中不使用此
?看起来您正确地使用了它,但它增加了一个额外的东西,在您的示例中可能会出错。没有它,您的测试用例会更简单。谢谢您的建议。我尝试了这两种方法,但没有得到调整大小的事件调用我。我尝试了这个,但没有帮助我。如果你能寄一些样品,我将不胜感激。谢谢!我试过了,但没有帮到我。如果你能寄一些样品,我将不胜感激。谢谢!谢谢你的建议。我修改了manifest.json文件,增加了一个字段(“content_scripts”),请参见下面的代码,尽管我没有调用事件侦听器。此外,我的加载功能消息框本身现在不出现。请告诉我哪里出了问题。{“名称”:“我的扩展名”,“版本”:“12.0.0.0”,“内容\脚本”:[{“匹配项”:[“http://*/*”],“js”:[“background.js”]}],“权限”:[“选项卡”,“http://*/*”],“manifest\版本”:2}您可以将窗口大小调整事件代码复制到单独的文件中,而不是background.js。我不能100%确定是否支持将同一个文件用于这两个目的。感谢您提供的有用信息,我只能通过使用内容脚本来实现这一点。甚至我也能够在同一个js文件中加载和调整事件侦听器的大小。再次非常感谢。以下是我的工作manifest.json文件的内容。{“name”:“Tile”,“version”:“1.2”,“manifest_version”:2,“description”:“Tile和stick窗口不重叠”,“content_脚本”:[{“js”:[“chrome-o-Tile.js”],“matches”:[”“]}],“permissions”:[“tabs”}感谢您的建议。我修改了manifest.json文件,增加了一个字段(“content_scripts”),请参见下面的代码,尽管我没有调用事件侦听器。此外,我的加载功能消息框本身现在不出现。请告诉我哪里出了问题。{“名称”:“我的扩展名”,“版本”:“12.0.0.0”,“内容\脚本”:[{“匹配项”:[“http://*/*”],“js”:[“background.js”]}],“权限”:[“选项卡”,“http://*/*”],“manifest\版本”:2}您可以将窗口大小调整事件代码复制到单独的文件中,而不是background.js。我不能100%确定是否支持将同一个文件用于这两个目的。感谢您提供的有用信息,我只能通过使用内容脚本来实现这一点。甚至我也能够在同一个js文件中加载和调整事件侦听器的大小。再次非常感谢。以下是我的工作manifest.json文件的内容。{“name”:“Tile”,“version”:“1.2”,“manifest_version”:2,“description”:“平铺和粘贴窗口不重叠”,“content_脚本”:[{“js”:[“chrome-o-Tile.js”],“matches”:[”“]}],“permissions”:[“tabs”}感谢分享这个示例。它确实有效。我能够重新调整事件的大小。是的,非常感谢您分享您的Chrome-o-Tile示例,完美回答aChrome。自Chrome 86(撰写本文时的开发频道)起,已添加onBoundsChanged
事件()。感谢您分享此示例。它确实有效。我可以重新调整活动的大小。是的,非常感谢您分享您的Chrome-o-Tile示例,完美回答aChrome.onBoun
{
"name": "My extension",
...
"permissions": ["tabs"],
...
}