2 回答
TA贡献1869条经验 获得超4个赞
您好,这里有两个方面。
Javascript 执行上下文
JSValue可以是普通值或 JavaScript 对象。
调用 executeJavaScriptAndReturnValue 后,您的执行上下文就完成了。您可以评估返回的对象。这个返回的对象可以是一个带有函数的 Java 脚本对象,在这种情况下您可以访问它。
假设您的 JavaScriptObject 有一个接受字符串的方法 helloWorld 。
JSValue document = browser.executeJavaScriptAndReturnValue("myJavascriptObject");
JSValue write = document.asObject().getProperty("helloWorldMethod");
write.asFunction().invoke(document.asObject(), "To Me");
这样我们就将“To Me”字符串传递给了 helloWorldMethod。
您还可以在对象上设置属性并稍后调用另一个方法。如果此方法使用此属性,则在下一次执行中将考虑它:
JSValue document = browser.executeJavaScriptAndReturnValue("myJavascriptObject");
JSValue write = document.asObject().getProperty("helloWorldMethod");
document.asObject().setProperty("shouldISayGoodByeInstead",true)
write.asFunction().invoke(document.asObject(), "To Me");
属性 shouldISayGoodByeInstead 将作为调用 helloWorldMethod 时发生的第二次执行的一部分进行评估,而不是在第一次执行 executeJavaScriptAndReturnValue 期间。
添加回答
举报