Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
将javascript注入zombie.js_Javascript_Node.js_Phantomjs_Zombie.js_Headless Browser - Fatal编程技术网

将javascript注入zombie.js

将javascript注入zombie.js,javascript,node.js,phantomjs,zombie.js,headless-browser,Javascript,Node.js,Phantomjs,Zombie.js,Headless Browser,您好,我想知道node js和zombie js是否有能力将javascript文件注入无头浏览器,类似于您可以使用phantomjs 例如,在phantom js中,您可以执行以下操作: page.injectJs("amino/TVI.js") 我已经使用了phantomjs,它做了我想让它做的事情,但是由于使用phantomjs需要很高的内存,我正在测试其他选项。您可以将脚本标记附加到文档对象中,因为它支持zombie中的DOM API 以下示例显示如何将jquery插入zombie主页

您好,我想知道node js和zombie js是否有能力将javascript文件注入无头浏览器,类似于您可以使用phantomjs

例如,在phantom js中,您可以执行以下操作:

page.injectJs("amino/TVI.js")

我已经使用了phantomjs,它做了我想让它做的事情,但是由于使用phantomjs需要很高的内存,我正在测试其他选项。

您可以将脚本标记附加到文档对象中,因为它支持zombie中的DOM API

以下示例显示如何将jquery插入zombie主页:

var Browser = require("zombie");
var assert = require("assert");    

// Load the page from localhost
browser = new Browser()
browser.visit("http://zombie.labnotes.org/", function () {    

  assert.ok(browser.success);

  // append script tag
  var injectedScript = browser.document.createElement("script");
  injectedScript.setAttribute("type","text/javascript");
  injectedScript.setAttribute("src", "http://code.jquery.com/jquery-1.11.0.min.js");    

  browser.body.appendChild(injectedScript);    

  browser.wait(function(window) {
    // make sure the new script tag is inserted
    return window.document.querySelectorAll("script").length == 4;
  }, function() {
    // jquery is ready
    assert.equal(browser.evaluate("$.fn.jquery"), "1.11.0");
    console.log(browser.evaluate("$('title').text()"));
  });
});

试着换个角度思考。你已经在僵尸中拥有了一切,可以注入你想要的一切

例如:
that.browser.window
指向jsdom窗口,站点javascript的每个部分都将该窗口用作基础。因此,您可以访问dom和已加载页面中的所有其他窗口对象


我不知道你想用注入来归档什么-你不应该用它来测试anway,但看起来这不是你的实际目标

你熟悉bookmarklet的工作原理吗?也许这能帮助你完成你想要完成的事情。