2012-03-22 29 views
1

我不是JavaScript的高手,我遇到了麻烦,所以我不确定我是否做错了或者我打算做的事情是不可能的。UIWebView -stringByEvaluatingJavaScriptFromString:在iFrame内容中填充文本框?

在我的网页中,我有一个iFramed聊天框。聊天室有3个文本字段,一个用于用户名,一个用于电子邮件地址,另一个用于消息。您可以看到它并检查其内容: http://appsylvania.com/Chatroom.html

我想用javaScript调用自动填充用户名(“nme”)和电子邮件(“eml”)文本字段。我已经插入函数到页面中,像这样:

function fillFields(name,email) { 
    var nameText = document.getElementsByName("nme"); 
    nameText.value = name; 
    var emailText = document.getElementsByName("eml"); 
    emailText.value = email; 
} 

所以,应该不是这个工作?

//in UIWebView didFinishLoad delegate method 
[webView stringByEvaluatingJavaScriptFromString:@"fillFields('justin','[email protected]');"]; 

它似乎没有做任何事情。我的猜测是,它不起作用,因为我要么做错了,要么JavaScript不能在iframe内容上工作。

感谢您的帮助。

+1

每这一问题http://stackoverflow.com/questions/1088544/javascript-get-element-from-within-an-iframe看来,你不能从另一个域访问的iFrame的内容,即被分类为跨站点脚本,并且不被允许。 – Justin 2012-03-22 18:23:24

回答

1

您是否尝试通过iFrame访问?

var ifrm = document.getElementById('cboxmain5-697468'); 
var nameText = ifrm.getElementsByName("nme"); 
+0

不,我没有,因为老实说,我不熟悉JavaScript比一些在线教程=)。将再试 – Justin 2012-03-22 17:40:40

+0

好吧,没有工作,但我改变了一些事情。 chatbox有2个iFrames,第二个iFrame是持有文本框的,它被称为“cboxform5-697468”。所以我改变了我的脚本以反映这一点。我希望有一个更简单的方法来调试。 – Justin 2012-03-22 18:04:10

+0

对于调试,Chrome在视图>开发人员中有开发人员工具和JavaScript控制台。对于Firefox,你可以下载Firebug。然后,您可以轻松浏览元素和变量console.log(变量)。 – 2012-03-22 22:14:32