【问题标题】:How do I get the selected value from a select box, from inside an Iframe, and display it on the outside?如何从 Iframe 内部的选择框中获取选定的值,并将其显示在外部?
【发布时间】:2013-04-15 00:24:57
【问题描述】:

我在 HTML 中有这个选择框,它所在的页面正在通过 iframe 加载到另一个页面(都在我的网站上)。我希望能够从选择框(在 iframe 内)中获取选定的值,并将其显示在外部。这是我拼凑的一些代码,但我不知道我是否做得对:

<script>
$('#iframe').contents().find('#cds').change(function() {
    var selectVal = $(this).val();
    url = 'https://twitter.com/intent/tweet?button_hashtag=stream&text=Just enjoying ' + selectVal + ' on'; 
    $("twitter").attr("id", url);
});
</script>

有什么建议吗?

澄清

  • 我的&lt;select&gt; 元素在iframe
  • 我想在iframe之外显示选中的值
  • iframe 的来源与加载它的页面位于同一域中

【问题讨论】:

  • 出了什么问题?您是否收到任何错误?请注意,iFrame 必须在同一个域中...
  • 它们都在同一个域中,但什么都没有发生,所以我不知道我的脚本是否有问题,或者它是否是错误的方法。
  • $('twitter') 前面应该有一个.(类)或#(ID)
  • 你为什么要为 URL 设置 ID
  • @mplungjan - 反过来; ID 的 URL :)

标签: javascript jquery html select iframe


【解决方案1】:

我不确定你的 HTML 是什么样的,但是

$("twitter").attr("id", url);

应该是:

$(".twitter").attr("id", url);

更新:试试这段代码...您需要检测 iframe 是否也已加载 (demo)

$(function () {
    // define this here because we're changing the ID
    var $twitter = $('#twitter');
    // bind to select inside iframe
    $('#iframe').on('load', function () {
        $(this).contents().find('#cds').change(function () {
            var selectVal = $(this).val();
            url = 'https://twitter.com/intent/tweet?button_hashtag=stream&text=Just enjoying ' + selectVal + ' on';
            $twitter.attr("id", url).text(url);
        }).change(); // trigger change to get initial value
    });
});

另外,由于我们要更改 twitter 的 ID,我们需要保存该 jQuery 对象。

【讨论】:

  • 还有一件事(我很抱歉),但我正在尝试对同一页面上的 jwplayer 播放列表做同样的事情,但布局不同,(因为它更像是一个动态 div比选择框)我该怎么做呢?这是结构:&lt;div class="jw_playlist_playlist"&gt;&lt;div class="jw_playlist_item even"&gt;item&lt;/div&gt;&lt;div class="jw_playlist_item odd"&gt;item2&lt;/div&gt;&lt;/div&gt;
  • 由于 div 是动态的,因此您需要找出更新的位置并使用回调或触发事件来获取这些更新。最好使用代码打开一个新问题以及有关如何更新播放列表的更多详细信息。
  • 嗯,我明天必须这样做。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 2015-07-02
相关资源
最近更新 更多