在javascript IDE中测试DOM方法,而不是在浏览器控制台中
我想知道为什么在使用任何支持javascript语言的IDE时,如果您试图使用在javascript IDE中测试DOM方法,而不是在浏览器控制台中,javascript,dom,console,ide,Javascript,Dom,Console,Ide,我想知道为什么在使用任何支持javascript语言的IDE时,如果您试图使用document.queryselectoral()或任何DOM选择器方法获取HTML页面的元素,它会返回运行时错误ReferenceError:未定义文档 文档仅在浏览器javascript内置控制台中定义的原因是什么 我的问题是,我只需要在IDE上运行javascript应用程序,而不需要在浏览器控制台上运行javascript应用程序来测试它 如果有任何建议的解决方案,请提及。在我的IDE上运行是什么意思 我认为
document.queryselectoral()
或任何DOM选择器方法获取HTML
页面的元素,它会返回运行时错误ReferenceError:未定义文档
文档
仅在浏览器javascript内置控制台中定义的原因是什么
我的问题是,我只需要在IDE上运行javascript应用程序,而不需要在浏览器控制台上运行javascript应用程序来测试它
如果有任何建议的解决方案,请提及。在我的IDE上运行是什么意思
我认为您更喜欢谈论服务器端的渲染
不管是哪种方式,是的,如果不做任何模仿,文档只存在于浏览器上。但是有一些方法可以模拟文档,例如,jsdom
:
例如,在没有浏览器的服务器端运行单元测试时,测试需要DOM且具有一定逻辑的UI组件非常有用。最后一个解决方案在我的案例中使用了
Nodejs
、jQuery
和jsdom
库,如中所建议
在较新的jsdomv10
API中,我应该将我的HTML
页面解析为jsdom
构造函数,以获得我期望的结果
但是将整个HTML页面传递给JSDOM
构造函数既困难又不方便,因此我使用另一种更简单的方法来解决它,使用较旧的JSDOMAPI,确切地说是通过JSDOM.env()
方法:
我传递要在其上使用DOM方法的页面url,然后在我的nodejs IDE上打印输出:
var jsdom = require("jsdom/lib/old-api.js");
jsdom.env(
"http://www.ammanu.edu.jo/English/Research/Research.aspx",
["http://code.jquery.com/jquery.js"],
function (err, window) {
var $ = window.$;
var a = $("section a");
for(var i = 0; i < a.length; i++){
console.log(a[i].getAttribute("href"));
}
}
);
var-jsdom=require(“jsdom/lib/old-api.js”);
jsdom.env(
"http://www.ammanu.edu.jo/English/Research/Research.aspx",
["http://code.jquery.com/jquery.js"],
函数(错误,窗口){
var$=窗口。$;
var a=$(“a部分”);
对于(变量i=0;i
确切地说,我只想在IDE上运行我的javascript代码,我试图使用DOM方法获取html页面的元素,但我总是得到引用错误:未定义文档
我认为javascript的文档未在后端IDE上定义。您使用哪个IDE?这取决于您使用的编程语言,而不是IDE。例如,Nodejs将能够在您的PC上运行JS而不使用浏览器,但如果没有我在回答中提到的解决方案,文档仍然无法使用。据我所知,netbeans本身在没有浏览器的情况下不会运行javascript。我安装了nodejs并将其链接到neatbeans IDE,因此您还必须使用一些库,如jsdom
,以便使文档在没有浏览器的情况下可用。@jony89非常感谢您提供的解决方案信息。这对我帮助很大。