nwjs (node-webkit) модифицирует javascript и css веб-сайта

Есть ли способ изменить javascript/css веб-сайта, как мы это делаем с Tampermonkey или Greasemonkey, но внутри моего приложения nwjs? Я сделал расширение Chrome, которое использует раздел content_scripts для запуска javascript при загрузке определенной веб-страницы, но я не могу найти способ сделать это в NodeJS с помощью nwjs.

Мне нужно запустить несколько строк, которые я написал, когда конечный пользователь загружает определенную страницу, чтобы все было изменено, чтобы соответствовать моему окну приложения и прочему.


person Robert W. Hunter    schedule 06.07.2015    source источник
comment
Вы читали github. com/nwjs/nw.js/wiki/ — в частности, часть о inject-js-start/inject-js-end   -  person Jaromanda X    schedule 06.07.2015
comment
Я не видел ничего для соответствия конкретному веб-сайту, но приятно знать, что есть вариант. Если вы напишите это как ответ, я приму это.   -  person Robert W. Hunter    schedule 06.07.2015
comment
Я делаю это очень легко с iframes и jquery. Много вкладышей 1 для управления удаленным сайтом. Хотите увидеть код, который я использую для этого? Вы также можете запретить удаленному сайту выходить из iframe.   -  person xendi    schedule 20.02.2016


Ответы (1)


check.html

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
    <iframe id="tgt" src="http://google.com/" style="position:fixed; left:0; right:0; width:100%; top:0; bottom:0;height:100%;" nwdisable nwfaketop>
    </iframe>
    <script src="check.js">
    </script>
  </body>
</html>

check.js

var tgt = document.getElementById('tgt');
tgt.addEventListener('load', function () {
    var dom = tgt.contentDocument,
        script = document.createElement('script');
    script.innerHTML = 'alert(window.location);'
    dom.body.appendChild(script);
}

main.js

// nothing in here for this test

пакет.json

{
  "name": "Check",
  "main": "check.html",
  "node-main": "main.js",
  "window": {
    "width": 1440,
    "height": 900,
    "position": "center",
    "toolbar": true,
    "title": "Do things now ...",
    "resizable": true
  }
}

Это успешно внедряет и запускает alert(window.location); в google.com

person Jaromanda X    schedule 06.07.2015
comment
Этот работает. Действительно помогите мне. Я поместил его в событие загрузки iframe. - person Yohannes Kristiawan; 21.07.2019