我在WP8应用程序中的Webbrowser控件上执行Javascript方法方面遇到了困难。我使用的XAML是:
<phone:WebBrowser IsScriptEnabled="True" x:Name="mainBrowserControl" Grid.Row="2"/>
当按钮点击事件发生时,我将外部 JavaScript 文件 testjs.js 添加到当前加载的 HTML 页面的头部(该文件是应用程序包的一部分,位于 xap 文件内)。
string root = Package.Current.InstalledLocation.Path;
string jsfile_path = string.Format("{0}/testjs.js", root);
var script = string.Format(@"var script=document.createElement('script');
script.src=""{0}"";
document.getElementsByTagName('head')[0].appendChild(script);", jsfile_path);
mainBrowserControl.InvokeScript("eval", script);
接着,在另一个按钮点击事件中,我尝试执行testjs.js文件中的一个JavaScript方法,如下:
mainBrowserControl.InvokeScript("eval", "callMe();");
但是它返回了错误信息:
发生了类型为'System.SystemException'的异常,位于Microsoft.Phone.Interop.ni.dll中,但未在用户代码中处理
附加信息:发生了未知错误。错误代码:80020101。
testjs.js文件中仅包含3个简单的函数。我的最终目标是与外部javascript文件(如testjs.js)交互(发送和接收值到和从javascript函数),并将其应用于我的应用程序。
function callMe() {
alert("hello called");
}
function showSum(val1, val2) {
alert(val1 + val2);
}
function addTwo(val1,val2) {
return val1+val2;
}
我该如何在我的Windows Phone应用程序中调用testjs.js中的这些方法?