1

を私のuiwebviewに表示しており、正常に動作しています。webviewで実行されているjavascriptメソッドを検出する

ウェブページには、実際にはいくつかのjavascript関数(fun1、fun2、fun3 ...)が含まれています。

私の要件は、webview上の選択で実行されているjavascriptメソッドを検出することです。

私はwebviewよりUITapGestureRecognizerを実装しました。私は私の次のような方法が

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

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

} 

と呼ばれているが、私は実行されるJavaScriptメソッドを取得していない午前WebViewの上で選択すると

[myWebView addGestureRecognizer:tapGestureRecognizer]; 

は今、どのように私はこれを得ることができますか?

注:どこかで私はそれを読んでいますarguments.callee.name;廃止されました。問題はそれですか?あなたがあなたのコードを変更することでこれを実現することができます

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

を次にiOSの側から:

答えて

1

あなたがそうのように、現在実行中の関数の名前のグローバル変数を設定するために、リモートWebページにJavaScriptを変更する必要があります言う:

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

それは意味がありますか?

+0

ウェブページを変更することはできません。私はウェブページを許可していません。まだ動作していません。 – user1227928

+0

サーバーサイドJSを変更せずにこれを実行することはできません。 – Sam

関連する問題