Как определить конкретный URL в браузере и получить ссылку на HTML-страницу в Javascript? - PullRequest
0 голосов
/ 22 мая 2019

Мне нужно изменить страницу html с помощью javascript (заполните поле).У меня есть конкретный URL-адрес, но я не знаю, как слушать, когда браузер находится на правильном URL-адресе, и получить код html.

Я делаю это с помощью веб-расширения, поэтому javascript долженпроверьте URL в веб-браузере и получите html отсюда.

Спасибо за помощь

Ответы [ 3 ]

1 голос
/ 22 мая 2019

Когда я набираю учебник по расширению Firefox в Google, первым хитом будет этот учебник из MDN .Очень близко к его началу приведен пример кода:

Теперь создайте новый файл с именем "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"]
    }
  ]

}

и произнесите

Самый интересный ключ здесь - content_scripts, который сообщает Firefox о загрузке скрипта в веб-страницы, URL которых совпадаетконкретный образец.В этом случае мы просим Firefox загрузить скрипт под названием "borderify.js" во все страницы HTTP или HTTPS, обслуживаемые с "mozilla.org" или любого из его поддоменов.

Так что в вашемманифест, замените "*://*.mozilla.org/*" на то, что соответствует странице, на которой вы хотите запустить скрипт.

Сценарий содержимого ("borderify.js") должен иметь возможность доступа к DOM этой страницы с помощью стандартных методов, таких как querySelector.

0 голосов
/ 22 мая 2019

Вы ищете веб-навигацию на соревновании. для этого вам нужно 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. вам нужно передать сообщение в контентный скрипт и сформировать там, где вы должны выполнить работу

Подробнее об этом https://developer.chrome.com/extensions/webNavigation#event-onCompleted

Подробнее о передаче сообщений https://developer.chrome.com/apps/messaging

0 голосов
/ 22 мая 2019

Ваш вопрос немного расплывчат, но если я правильно понимаю ...

Если вы хотите заполнить поле на веб-странице и / или нажать кнопку, то, возможно, вы захотите использовать расширение Firefox под названием Tampermonkey .

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';
})();

Обратите внимание, что также можно использовать jQuery в ваших сценариях TM, добавив эту строку

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

где-то в блоке // ==/UserScript==.

...