1

URL在我的中显示一个uiwebview并且它工作正常。

所以网页实际上包含一些 Javascript 函数(fun1、fun2、fun3...),一旦我在 webview 上选择了某个部分,就会执行这些函数。

所以我的要求是检测在 webview 上选择时正在执行的 Javascript 方法。

所以我已经UITapGestureRecognizer通过 webview 实现了。

[myWebView addGestureRecognizer:tapGestureRecognizer]; 

现在,一旦我在 webview 上选择,我的以下方法就会被调用:

-(void)singleTap:(UIGestureRecognizer *)gestureRecognizer
{

   [myWebView stringByEvaluatingJavaScriptFromString:@"function getItem(){ var functionName =arguments.callee.name; alert(functionName);}getItem()"];
    
}

但我没有得到执行的 Javascript 方法,我怎样才能得到这个?

注意:我读过的某个地方arguments.callee.name; 已被弃用,那是问题吗?

4

1 回答 1

1

您需要修改远程网页上的 JavaScript 以使用当前运行的函数名称设置全局变量,如下所示:

var CURRENT_FUNCTION = '';
function someFunction() {
    CURRENT_FUNCTION = 'someFunction()';
}

然后从 iOS 端,您可以通过更改代码来完成此操作:

NSString *currentFunction = [myWebView stringByEvaluatingJavaScriptFromString:@"return CURRENT_FUNCTION"];

那有意义吗?

于 2012-03-28T18:45:56.683 回答