将javascript注入zombie.js
您好,我想知道node js和zombie js是否有能力将javascript文件注入无头浏览器,类似于您可以使用phantomjs 例如,在phantom 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主页
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的工作原理吗?也许这能帮助你完成你想要完成的事情。