0

您好我正在尝试从不同的页面将一些 javascript 插入到我服务器上的页面中。第一个页面将加载到 iframe 中。我想从托管 iFrame 的页面向该页面(在 iframe 中)插入一些 CSS 样式。有我可以用来执行此操作的 jQuery 脚本吗?

就像是。
page1->page2 iframe。样式的 page2 脚本-> iframe 中的 page1

    <body>
    <!--<div id="left_col"></div>-->
    <div id="middle_col">
        <!--header-->
        <div id="header">
            <p>iFrame Example</p>
        </div>      
                <div id="entry">
                    <p>Enter your URL</p>
                    <textarea id="mytextarea" rows="1" cols="50"></textarea>

                        <a title="Check Me Out!" id="btn-wrap">
                            <span class="title">Click to view site</span>

                            <div id="info">
                                <p>
                                    <strong>Don't forget</strong>
                                    <strong>the "http://"</strong>
                                </p>
                            </div>
                        </a>
                </div>
             <br/>
             <br/>
            <iframe id="myframe" src="http://johnverber.com/simple.html">
            </iframe>
    </div>
    <!--<div id="right_col"></div>-->
<script>
    $(document).ready(function() {
        positionAd();
     });

    $(window).resize(function() {
        positionAd();
    });

    var positionAd = function() {
        var WINDOW_WIDTH = $(window).width();
        var WINDOW_HEIGHT = $(window).height();
        var BOX_WIDTH = $('#middle_col').width();
        var BOX_HEIGHT = $('#middle_col').height();

        $('#middle_col').css({"left": (WINDOW_WIDTH - BOX_WIDTH)/2, "top" : (WINDOW_HEIGHT - BOX_HEIGHT)/2});
        }

    $('#btn-wrap').click(function() {
                    var urlVal = $('#mytextarea').val();
                    if(urlVal.match("?_myTag")){
                        document.getElementById('myframe').src = urlVal;
                    }
                    else{
                        var addTag = urlVal.concat("?_myTag");
                        document.getElementById('myframe').src = addTag;
                    }
    });

    $('#myframe').contents().find("head").append("<link rel="stylesheet" type="text/css" href="addStyles.css" />");

</script>
</body>
4

2 回答 2

1

您可以使用 jQuery.contents()来访问iframe的内部 DOM。从那里开始很简单:

$("#iframe_id").contents().find("head").append("<script>..scripts..</script>");
//or
$("#iframe_id").contents().find("head").append("<style>..styles..</style>");

希望有帮助!

于 2012-09-04T19:13:01.380 回答
0

好吧,这就是最终工作的结果:

$("#iframe_id").contents().find("head").html("<style>..styles..</style>");
于 2012-09-05T03:05:42.303 回答