获取一个iframe中输入字段的值(Get value of input field inside

2019-07-20 07:36发布

我创建与只有JavaScript的形式。 我试图使用JavaScript来获取这是一个内部的输入字段的值iframe 。 是否有可能得到一个字段是一个内部的价值iframe

Answer 1:

是的,它应该是可能的,即使该网站是从另一个域。

举例来说,在我的网站上的HTML页面我有一个iFrame,其内容从其他网站货源。 iframe内容的是一个单一的选择字段。

我需要能够读取我的网站上选择的值。 换句话说,我需要使用选择列表从另一个域我自己的应用程序中。 我没有在任何服务器设置控制。

最初,因此,我们可能会尝试做这样的事情(简体):

HTML在我的网站:

<iframe name='select_frame' src='http://www.othersite.com/select.php?initial_name=jim'></iframe>
<input type='button' name='save' value='SAVE'>

的iFrame(从加载的HTML内容select.php另一个域):

<select id='select_name'>
    <option value='john'>John</option>
    <option value='jim' selected>Jim</option>
</select>

jQuery的:

$('input:button[name=save]').click(function() {
    var name = $('iframe[name=select_frame]').contents().find('#select_name').val();
});

不过,我收到这个JavaScript错误,当我尝试读取值:

封闭原点“的帧http://www.myownsite.com访问的帧与原籍”“ http://www.othersite.com ”。 协议,域和端口必须匹配。

为了解决这个问题,似乎可以间接来源自己的网站从脚本内嵌框架,并有脚本中使用类似的方法从其他站点阅读其内容file_get_contents()curl等。

因此,创建一个脚本(例如: select_local.php在当前目录中)在自己的网站有类似这样的内容:

select_local.php的PHP内容:

<?php
    $url = "http://www.othersite.com/select.php?" . $_SERVER['QUERY_STRING'];
    $html_select = file_get_contents($url);
    echo $html_select;
?>

还修改HTML调用这个地方(而不是远程)脚本:

<iframe name='select_frame' src='select_local.php?initial_name=jim'></iframe>
<input type='button' name='save' value='SAVE'>

现在,您的浏览器应该认为这是加载同一个域中的IFRAME的内容。



Answer 2:

<iframe id="upload_target" name="upload_target">
    <textarea rows="20" cols="100" name="result" id="result" ></textarea>
    <input type="text" id="txt1" />
</iframe>

您可以通过JQuery的获取价值

$(document).ready(function(){
  alert($('#upload_target').contents().find('#result').html());
  alert($('#upload_target').contents().find('#txt1').val());
});

仅在同一个域中的链接工作



Answer 3:

document.getElementById("idframe").contentWindow.document.getElementById("idelement").value;


Answer 4:

如果没有的iFrame我们可以通过JQuery的做到这一点,但它会给你只HTML页面源和没有动态链接或HTML标签就会显示出来。 几乎相同的PHP解决方案,但在JQuery中:)代码---

var purl = "http://www.othersite.com";
$.getJSON('http://whateverorigin.org/get?url=' +
    encodeURIComponent(purl) + '&callback=?',
    function (data) {
    $('#viewer').html(data.contents);
});


文章来源: Get value of input field inside an iframe