我在URL
中显示uiwebview
并且它正常运行。
因此,网页实际上包含一些javascript函数(fun1,fun2,fun3 ...),一旦我在webview上选择了一些部分,就会执行。
所以我的要求是检测通过webview选择正在执行的javascript方法。
所以我在webview上实现了UITapGestureRecognizer
。
[myWebView addGestureRecognizer:tapGestureRecognizer];
现在,一旦我在webview上选择了以下方法,就会调用
-(void)singleTap:(UIGestureRecognizer *)gestureRecognizer
{
[myWebView stringByEvaluatingJavaScriptFromString:@"function getItem(){ var functionName =arguments.callee.name; alert(functionName);}getItem()"];
}
但是我没有得到执行的javascript方法,我怎么能得到这个?
注意:在某处我读过arguments.callee.name;已被弃用,那问题是什么?
答案 0 :(得分:1)
您需要修改远程网页上的JavaScript,以使用当前运行的函数名称设置全局变量,如下所示:
var CURRENT_FUNCTION = '';
function someFunction() {
CURRENT_FUNCTION = 'someFunction()';
}
然后,从iOS端,您可以通过更改代码来完成此操作:
NSString *currentFunction = [myWebView stringByEvaluatingJavaScriptFromString:@"return CURRENT_FUNCTION"];
这有意义吗?