1

我在我的uiwebview中顯示URL,它工作正常。檢測在webview中執行的javascript方法

因此,網頁實際上包含一些javascript功能(fun1,fun2,fun3 ...),一旦我選擇了一部分而不是webview,geting就會執行該功能。

所以我的要求是檢測在webview選擇上執行的javascript方法。

因此,我通過webview實現了UITapGestureRecognizer

[myWebView addGestureRecognizer:tapGestureRecognizer]; 

現在,一旦我在網頁視圖中選擇我下面的方法被稱爲

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

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

} 

,但我沒有得到其上執行JavaScript的方法,我怎樣才能得到呢?

注:某處我讀過arguments.callee.name;已被棄用,那麼問題呢?

回答

1

您需要修改JavaScript遙控器上的網頁來設定與當前正在運行的功能名稱的全局變量,像這樣:從iOS側

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

然後你就可以改變你的代碼來完成這個說:

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

這有道理嗎?

+0

我無法更改網頁,因爲我沒有它的許可。它仍然無法正常工作。 – user1227928 2012-03-30 10:04:42

+0

如果不更改服務器端JS,您將無法完成此操作。 – Sam 2012-03-30 15:44:33

相關問題