Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在浏览器中检测特定url并在Javascript中获取html页面关联?_Javascript_Html_Firefox Addon Webextensions - Fatal编程技术网

如何在浏览器中检测特定url并在Javascript中获取html页面关联?

如何在浏览器中检测特定url并在Javascript中获取html页面关联?,javascript,html,firefox-addon-webextensions,Javascript,Html,Firefox Addon Webextensions,我需要用javascript(填写字段)修改html页面。 我有一个特定的url,但我不知道如何在浏览器位于正确的url上时进行侦听,并获取htmlcode关联 我是通过一个webextension来实现的,因此javascript必须检查web浏览器中的url并从这里获取html 谢谢你帮我当我输入谷歌时,第一个点击是。非常接近顶部的是以下代码示例: 现在直接在下面创建一个名为“manifest.json”的新文件 “borderify”目录。请提供以下内容: { "manifest_v

我需要用
javascript
(填写字段)修改
html
页面。 我有一个特定的url,但我不知道如何在浏览器位于正确的url上时进行侦听,并获取
html
code关联

我是通过一个webextension来实现的,因此
javascript
必须检查web浏览器中的url并从这里获取
html

谢谢你帮我

当我输入谷歌时,第一个点击是。非常接近顶部的是以下代码示例:

现在直接在下面创建一个名为“manifest.json”的新文件 “borderify”目录。请提供以下内容:

{

  "manifest_version": 2,
  "name": "Borderify",
  "version": "1.0",

  "description": "Adds a red border to all webpages matching mozilla.org.",

  "icons": {
    "48": "icons/border-48.png"
  },

  "content_scripts": [
    {
      "matches": ["*://*.mozilla.org/*"],
      "js": ["borderify.js"]
    }
  ]

}

这里最有趣的关键是内容脚本,它告诉Firefox 将脚本加载到URL与特定模式匹配的网页中。 在本例中,我们要求Firefox加载一个名为 “borderify.js”插入“mozilla.org”提供的所有HTTP或HTTPS页面 或其任何子域

因此,在清单中,将
“*://*.mozilla.org/*”
更改为与要在其上运行脚本的页面相匹配的内容


内容脚本(
“borderify.js”
)应该能够使用标准方法(如
querySelector
)访问该页面的DOM。您的问题有点模糊,但如果我理解正确

如果您想在网页上填写一个字段和/或单击一个按钮,那么您可能需要使用名为的Firefox扩展

Tampermonkey允许您为所需的任何网站创建脚本,这些脚本将在页面上注入(并运行)额外的javascript代码(您提供的)。坦率地说,它工作得非常好——我已经为几十个网站创建了脚本,这些脚本可以让我登录到一个网站,删除广告/图像/杂乱,甚至完全重新格式化页面

显然,TM脚本仅在您的计算机上运行,并且仅在该计算机上为您更改网站外观

基本的Tampermonkey脚本如下所示:

// ==UserScript==
// @name         SO Hide HNQ
// @namespace    http://tampermonkey.net/
// @match        https://stackoverflow.com/questions/*
// @match        https://stackoverflow.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var myHnq = document.getElementById('hot-network-questions');
    myHnq.style.display = 'none';
})();
请注意,通过添加此行,也可以在TM脚本中使用jQuery

// @require      http://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js

/==/UserScript=
块中的某个地方。

您正在查找webnavigation onCompete事件。为此,您需要
webNavigation
权限

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete') {
    if (tab.url.indexOf("__your__url") != -1) {
      alert("__your__url loaded");
     //here do your work 
    }
  }
});
您必须在后台JS中编写此代码。您需要将消息传递到内容脚本并在那里形成表单,您必须完成这项工作

更多关于这个

更多关于消息传递的信息

@Lewis–将内容脚本注入每个页面,然后从脚本内部测试URL是一种非常糟糕的方法,需要安装脚本的用户更加信任它。这不是一个好方法。@Tinou3231-只是跟进。你的问题回答得满意吗?如果有更多我可以帮忙的地方,请在我的答案下面添加评论,或者编辑您的问题以澄清您还想知道什么。否则,如果你能选择一个“最佳答案”(点击答案旁边的复选标记)来结束问题,那就太好了。如果没有答案提供有用的信息,请添加您自己的答案,并选择该答案作为最佳答案。还要记住,你可以以任何方式对任何你觉得有用的答案进行投票——如果需要的话,你也可以对选中的答案进行投票。谢谢他们说他们正在编写一个web扩展,而不是使用Tampermonkey。是的,但我关注的是他想做什么,而不是他想怎么做。TM比编写web扩展更简单——也许它更适合他的需要。