Google chrome extension Chrome扩展清单匹配不适用于点击该url

Google chrome extension Chrome扩展清单匹配不适用于点击该url,google-chrome-extension,Google Chrome Extension,我有下列舱单 { "manifest_version":2, "name": "HelloWorld", "version": "0.1", "content_scripts": [ { "matches": [ "*://www.mywebsite.com/" ], "js": ["home.js"], "run_at": "document_start" } ] } 当我通过浏览器的url栏

我有下列舱单

{
  "manifest_version":2,
  "name": "HelloWorld",
  "version": "0.1",
  "content_scripts": [
    {
      "matches": [
        "*://www.mywebsite.com/"
      ],
      "js": ["home.js"],
      "run_at": "document_start"
    }
  ]
}

当我通过浏览器的url栏进入
www.mywebsite.com
时,它可以完美地工作。但是当我通过另一个url中的超链接路由到同一个url
www.mywebsite.com
,脚本不会触发。为什么呢?我在

中没有看到这一点,我只是想出了一个临时方法,你可以这样做

<some_dom_object>.addEventListener("click", function() {
  // do the thing you want happen.
})
.addEventListener(“单击”,函数(){
//做你想做的事。
})

在“按钮元素”或“锚元素”或您点击该网站的任何内容上,因此当您“点击”url时,代码也将被执行。

感谢您的回复。但这不是一个坏模式,因为它在模式的末尾有一个正斜杠来匹配特定的路径。正如我所说,当我将url栏插入我的网站时,它工作得非常好。模式只匹配根路径,因此如果该网站是AJAX驱动的,并且您首先访问子路径,那么内容脚本将不匹配,那么该网站将假导航到根路径,而不实际从服务器获取页面,但内容脚本只在页面满载时加载,而不是在AJAX导航上加载。注意,根据您在内容脚本中实际执行的操作,这可能适用于URL的任何组合,而不仅仅是根URL。谢谢您,这正是发生的情况。。。AJAX导航。但是,我怎样才能与AJAX导航相匹配呢?我在脚本中执行的是根路径中的
window.location.replace(“www…xx”)
,以及
querySelector('button#some id')。单击()
但在其他路径中,奇怪的是,当我在同一个域中的不同路径上单击时,“hashchange”事件没有被触发。如果“hashchange”没有触发,它仍然是AJAX导航吗?历史API不必更改URL的哈希部分,整个路径可以是动态的。如果这对您有效,那么问题一定出在内容中脚本代码,不在清单中,但您没有显示它。。。