我正在使用浏览器组件开发一个eclipse插件。我正在使用 BrowserFunction 向JS方面公开一些方法。
我的html如下所示,
<html>
<head>
<script type="text/javascript">
function sayHello() {
alert("Hello from eclipse plugin javascript !!! ");
};
function alertJson() {
alert('going to print json');
alert(JSON.parse('{"apple": 5}'));
};
</script>
</head>
<body>
<h1>testing</h1>
<button onclick="sayHello();">Click Me</button>
<button onclick="alertJson();">Print JSON</button>
</body>
</html>
但只有第一个警报会按预期弹出。第二个没有出现。
任何想法为什么以上不起作用?
注意:我的目的是从JS端调用Java端函数(BrowserFunction,它使用gson返回一个json字符串),并将返回的json字符串转换回json对象,以便我可以操作它。
答案 0 :(得分:0)
function alertJson() {
alert('going to print json');
alert(JSON.parse('{"apple": 5}'));
};
如果您正在使用[对象] [对象]获得第二个警报。你的代码非常好。 “[object] [object]”表示类型为object的值,而不是string。正如预期的那样,JSON.parse将您的字符串“{”apple“:5}”转换为一个对象。如果你想检查你的函数返回什么,你可以做一个console.log(JSON.parse('{“apple”:5}'))并检查开发人员工具中的输出,在你的浏览器上点击F12。
答案 1 :(得分:0)
这是一个浏览器问题。 解决菜单中的更改Web浏览器设置
窗口&gt; Web浏览器&gt; Internet Explorer
您可以选择任何其他网络浏览器,例如firefox,chrome [ie]等。相同的代码无需任何修改即可使用。