netscape.javascript.JSException:语法错误:意外关键字';这个';。预期的';)';结束参数列表的步骤
我试图在WebView中的HTML文档中的netscape.javascript.JSException:语法错误:意外关键字';这个';。预期的';)';结束参数列表的步骤,java,jquery,html,webview,javafx,Java,Jquery,Html,Webview,Javafx,我试图在WebView中的HTML文档中的元素中插入一个文本字符串 .爪哇 HTML <h3 class="panel-title"></h3> <script> $(document).ready(function() { window.testCheckMate = function (data) { $( ".panel-title" ).append( data ); }; })
元素中插入一个文本字符串
.爪哇
HTML
<h3 class="panel-title"></h3>
<script>
$(document).ready(function() {
window.testCheckMate = function (data) {
$( ".panel-title" ).append( data );
};
});
</script>
我做错了什么?传递给Javascript方法的字符串需要有引号:
webEngine.executeScript("testCheckMate(\"" + headerText + "\");");
您传递的字符串已经包含“字符。因此,从Java端,您必须用\”引用该字符串。但是,在JavaScript中,此字符串将再次被解析,\“将作为字符串的结尾。这就是引发结束参数列表错误的原因。 传递用于调用函数的字符串时,应在Java端使用:
ret = ret.replaceAll("\"","\\\\\"");
这解决了我的问题。您缺少引号…您正在执行javascript
testCheckMate(这是标题)
而不是testCheckMate(“这是标题”)
Hi@James_D.你能看看我在这里发布的这个类似的问题,看看你是否能帮上忙吗?你的回答对我正在做的一项关于从Java调用JavaScript函数的研究有很大帮助。但是,我需要发布一个后续问题,你的回答并没有真正包含在内。这看起来像是一个问题y在别处找到了答案。通过使用这个,我的字符串从C:\Users\变为C:Users,斜杠消失了。有人知道为什么吗?
webEngine.executeScript("testCheckMate(\"" + headerText + "\");");
ret = ret.replaceAll("\"","\\\\\"");