Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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 IDE中测试DOM方法,而不是在浏览器控制台中_Javascript_Dom_Console_Ide - Fatal编程技术网

在javascript IDE中测试DOM方法,而不是在浏览器控制台中

在javascript IDE中测试DOM方法,而不是在浏览器控制台中,javascript,dom,console,ide,Javascript,Dom,Console,Ide,我想知道为什么在使用任何支持javascript语言的IDE时,如果您试图使用document.queryselectoral()或任何DOM选择器方法获取HTML页面的元素,它会返回运行时错误ReferenceError:未定义文档 文档仅在浏览器javascript内置控制台中定义的原因是什么 我的问题是,我只需要在IDE上运行javascript应用程序,而不需要在浏览器控制台上运行javascript应用程序来测试它 如果有任何建议的解决方案,请提及。在我的IDE上运行是什么意思 我认为

我想知道为什么在使用任何支持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非常感谢您提供的解决方案信息。这对我帮助很大。