首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome扩展只在刷新时运行,而不是在页面导航上运行。

问Chrome扩展只在刷新时运行,而不是在页面导航上运行。
EN

Stack Overflow用户
提问于 2016-09-21 23:05:32
回答 1查看 2.9K关注 0票数 4

我有一个chrome扩展,我想在GitHub上操作一些DOM。当我刷新任何给定的页面时,它们都可以正常工作,但是如果我通常导航到该页面,脚本就不会被执行。

manifest.json

代码语言:javascript
复制
{
    "manifest_version": 2,

    "name": "Name",
    "description": "Detailed description",
    "version": "1.3.5",
    "content_scripts": [{
        "matches": ["https://github.com/*/*/issues/*"],
        "js": ["jquery-2.1.0.min.js", "index.js"]
    }],
    "browser_action": {
        "default_icon": "icon.png"
    },
    "permissions": [
        "activeTab",
        "https://ajax.googleapis.com/"
    ]
}

index.js

代码语言:javascript
复制
$(document).ready(function() {
    // DOM manipulating code
    // removed for brevity
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-21 23:31:18

当您从另一个页面导航到GitHub页面时,页面中的容器将被更新,而不是整个页面。

所以根据我的经验..。如果您从回购的主页开始并切换到问题页面,扩展并不总是注意到此更改。因此,我建议将清单matches更改为所有github,而不仅仅是问题:

代码语言:javascript
复制
{
    "manifest_version": 2,
    "name": "Name",
    "description": "Detailed description",
    "version": "1.3.5",
    "content_scripts": [{
        "matches": ["https://github.com/*"],
        "js": ["jquery-2.1.0.min.js", "index.js"]
    }],
    "browser_action": {
        "default_icon": "icon.png"
    },
    "permissions": [
        "activeTab",
        "https://ajax.googleapis.com/"
    ]
}

如果这不起作用,那么在您的代码中,监视"pjax:end“事件的文档:

代码语言:javascript
复制
document.addEventListener("pjax:end", function() {
    // run code/call function
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39627817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档