2

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 Click3) should execute.

2 Answers 2

1
+50
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';}"];
Sign up to request clarification or add additional context in comments.

Comments

0

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));
};

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.