iframe / Object ondown from dropdown

时间:2014-06-16 14:01:45

标签: jquery object iframe onchange

我在一个嵌入了另一个页面的页面中有一个<object>元素,并按照此处的建议使用iframe回退:http://www.kgsteely.com/information-technology/using--lt-object-gt--instead-of---lt-iframe-gt.19.html

我希望使用带有jquery的下拉列表来更改元素(如果已选中)。我得到了iframe的iframe,但我没有得到该对象的工作。我的javasctript选择器做错了我做错了什么?

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>    
<select id="selector">
        <option value="0">Select Project</option>
        <option value="http://google.com">Google</option>
        <option value="http://yahoo.com">Yahoo</option>
        <option value="http://codecanyon.net">CodeCanyon</option>
    </select>
    <!--[if !IE]>-->
       <object data="//themeforest.net" type="text/html" style="width:100%;height:50em;" class="viewer" id="viewer">
          <p>Sorry. This content cannot be rendered (non-IE object).  Stop living in the past and upgrade to <a href="http://www.abetterbrowser.com">a better browser</a></p>
       </object>
    <!--<![endif]-->

    <!--[if IE]>
      <iframe src="//themeforest.net" type="text/html" style="width:100%;height:50em; border: 0" class="viewer" id="viewer">
         <p>Sorry. This content cannot be rendered (IE iframe).  Stop living in the past and upgrade to <a href="http://www.abetterbrowser.com">a better browser</a></p>
      </iframe>
    <![endif]-->
    <script>
    $(document).ready(function(){
        $("#selector").change(function(){
            $("#viewer").attr("src", $(this).val());
        });
        $("#selector").change(function(){
            $("#viewer").attr("data", $(this).val());
        });
    });
    </script>

由于

2 个答案:

答案 0 :(得分:1)

尝试替换:

$(document).ready(function(){
    $("#selector").change(function(){
        $("#viewer").attr("src", $(this).val());
    });
    $("#selector").change(function(){
        $("#viewer").attr("data", $(this).val());
    });
});

对此:

$(document).ready(function(){
    $("#selector").change(function(){
        $("#viewer").prop("src", $(this).val()).prop("data", $(this).val());
    });
});

答案 1 :(得分:1)

你的选择器工作得非常好。如果您检查chrome的错误日志,您可以看到:

Refused to display 'http://themeforest.net/' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

对于您尝试嵌入帧中的其他页面,情况也是如此(或者X-Frame-Options设置为DENY而不是SAMEORIGIN)。最后,如果你试图构建你自己的页面,我不会推荐它,但如果你真的想这样做,请查看this answer

还应考虑对链接问题的评论:“如果它们是您的页面,则删除框架限制器。否则,请尊重页面作者的意愿,不要将其框起来。”