gpt4 book ai didi

java - Htmlunit ScriptException "console"未定义

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:55 27 4
gpt4 key购买 nike

我正在使用 htmlunit 2.9 并且在 java 脚本解析时由于 console 在以下异常中出现脚本异常

function debug(o){
if (console && console.log){
console.log(o)
}
};

堆栈跟踪

EcmaError:
lineNumber=[168]
column=[0]
lineSource=[null]
name=[ReferenceError]
sourceName=[script in http://localhost:808/mypage/ll.html from (154, 36) to (301, 14)]
message=[ReferenceError: "console" is not defined. (script in http://localhost:8080.com/mypage/ll.html from (154, 36) to (301, 14)#168)]
com.gargoylesoftware.htmlunit.ScriptException: ReferenceError: "console" is not defined. (script in http://localhost:8080.com/mypage/ll.html from (154, 36) to (301, 14)#168)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:595)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:545)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:520)
at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunctionIfPossible(HtmlPage.java:896)
at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeEventHandler(EventListenersContainer.java:195)
at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeBubblingListeners(EventListenersContainer.java:214)

如果我在 firefox 上尝试指定页面,它工作正常,我已经尝试过 v 3.6 和 9.0.1。

我也尝试过设置 setThrowExceptionOnScriptError(false) 以避免出现异常但引擎停止或在收到错误后不解析 javascript。

javascript引擎有什么办法可以理解javascript中的console吗?

最佳答案

您的 if 条件结构不正确:

if (console && console.log){

如果未设置,第一个 if 将抛出错误;在未定义的环境中访问 console 就像访问任何 undefined variable 一样;它会抛出一个ReferenceError

尝试:

if( typeof console != "undefined" && console.log ) {

或者:

if(window.console && console.log) {

它不会在 Firefox 中抛出错误,因为 Firefox 实现了 Firebug API,Chrome 和 Safari 也是如此。但是,默认情况下,Internet Explorer 不会,因此,值得在这里进行适当的功能检查,因为它会在未实现此 API 的浏览器中抛出 ReferenceError。

关于java - Htmlunit ScriptException "console"未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8690652/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com