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 期間。
添加回答
舉報