开发者

Execute stringByEvaluatingJavaScriptFromString before click event

I am using UIWebView in iPhone and loaded one HTML page from resources.

Following is my HTML page code:

<html>
<head>
<title></title>
<SCRIPT language="JavaScript">
function callme(id)
{   
    var input = 'input'+id;
    document.getElementById(input).value = document.getElementById('code').value;
}
</SCRIPT>
</head>
<body> 
<input type=hidden id='code' name='code'>
<a href="#" id="click1" name="click1" onclick='callme(1);'>Click1</a>
<input type="text" id="input1" name="input1">
</br>
<a href="#" id="click2" name="click2" onclick='callme(2);'>Click2</a>
<input type=text id="input2" name="input2">
</br>
<a href="#" id="click3" name="click3" onclick='callme(3);'>Click3</a>
<input type=text id=input3 name=input3>

</body>
</html>

I have inject some Javascript on page using following code:

[webView stringByEvaluatingJavaScriptFromString:@"var field1 = document.getElementById('code'); field1.value='Code010203';"];

What I want is when user click on link first injected script should run and then onclick event's function(callme(1) or 2 or 3) for link(Click1,Click2 or Click开发者_StackOverflow中文版3) should execute.


function callme(id)
{   
    injectedCode();
    var input = 'input'+id;
    document.getElementById(input).value = document.getElementById('code').value;
}

where injected code is:

[webView stringByEvaluatingJavaScriptFromString:@"var field1; function injectedCode() {field1 = document.getElementById('code'); field1.value='Code010203';}"];


I'm not 100% sure I understand your question.

If you want the click event to run the injected code, would this approach work for you :

(this is the injected code below)

document.querySelector("#click1").onclick = function() {
    // do your new stuff here

    clickMe(1);
};

You could make this generic with a bit of effort e.g.

document.querySelector("a[id^=click]").onclick = function() {
    // do your new stuff here
    var clickMeArg = this.id.substring("click".length);
    clickMe(parseInt(clickMeArg, 10));
};
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜