webNavigation.onDOMContentLoaded URL过滤器与DNS错误URL不匹配

时间:2017-06-14 17:58:09

标签: javascript firefox-addon firefox-webextensions

参考上一个问题dotimes的答案。简而言之:当导航url中发生错误(例如DNS查找错误)时,导航到webNavigation.onDOMContentLoaded事件的about:neterror属性中可以使用选项卡导航到的URL显示的错误页面,但显示的实际 URL(即webNavigation.onDOMContentLoaded URL)无法通过其他方式获得。

我想按照答案的方法获取错误页面网址。我编写了这个示例代码,我在浏览器中收到错误页面,但是当我使用var filter = { url: [ {hostContains: "pagedoesnotexist.com"} ] } function logOnDOMContentLoaded(details) { console.log("onDOMContentLoaded: " + details.url); } browser.webNavigation.onDOMContentLoaded.addListener(logOnDOMContentLoaded, filter); 获取错误的实际URL时,代码根本不返回任何内容。请注意,如果没有错误,代码将返回正确的URL。

这是我的示例( test.js ):

{
  "manifest_version": 2,
  "name": "test
  "version": "1.0",
  "background": {
    "scripts": ["test.js"]
  },
  "permissions": [
    "<all_urls>",
    "activeTab",
    "tabs",
    "storage",
    "webRequest",
    "webNavigation"
  ] 
}

并且 manifest.json

set /a

1 个答案:

答案 0 :(得分:0)

您的代码无法按您的方式运行,因为您要查找的网址不包含 public static object ToCsvField(this object text) { var textSerialized = TypeSerializer.SerializeToString(text).StripQuotes(); return textSerialized == null || !CsvWriter.HasAnyEscapeChars(textSerialized) ? textSerialized : string.Concat ( CsvConfig.ItemDelimiterString, textSerialized.Replace(CsvConfig.ItemDelimiterString, CsvConfig.EscapedItemDelimiterString), CsvConfig.ItemDelimiterString ); } 作为主机的一部分。发生错误的URL是query的一部分,而不是主机。

不幸的是,使用events.UrlFilterpagedoesnotexist.com似乎有错误(我仍在调查我看到的行为)。我发现您的代码有以下修改才有效:

queryContains