在WP8上,如果我执行(1):
Microsoft.Phone.WebBrowser wb; wb.InvokeScript("eval","window.external.notify('abc');");
它抛出一个“调用的目标返回错误”,未知错误,hresult 80020101.@H_502_5@但(2)
wb.InvokeScript("eval","window.alert('abc');");
工作正常,并显示消息框.
和(3)
wb.InvokeScript("eval","( function (){window.external.notify('abc');})();");
也工作正常
我的问题是,window.external.notify()是什么,阻止eval直接调用它?它是一个函数调用,如window.alert(),因此它应该是一个有效的脚本.但是,如果在1)中有一些关于未装饰的电话的特别的东西,那么为什么3中的打包的电话可以工作?
我明白eval()是所有邪恶的根源,并且我已经阅读了其他与post()有关的SO帖子与函数定义. (我们哪里都没有SO?)但这显然是一个不同的问题.