在<body>标签后插入DIV

6
我有以下代码:
<script type="text/javascript">
    $(document).ready(function() {
        $('<div id="tools" style="text-align:right;float:right;"><input type="button" value="Print this page" onclick="window.print();return false;" /><input type="button" value="Save this page" onclick="go_saveas();return false;" /></div>').insertBefore('body');
    });
</script>

基本上,我需要在<body>标签之后插入整个

</head>
<body>
    <div id="tools"..
...

这个在Firefox中可以工作但在IE 7中无法工作,我需要改变什么来解决这个问题?

3个回答

15

您正在使用insertBefore函数,它会尝试将内容放在headbody之间;这不是您想要的结果。请尝试使用prependTo函数。


@Bryan:哎呀,我的错。那正是我想要的。 - icktoofay

2

http://jsfiddle.net/XDFMt/:

<script type="text/javascript">
    $(document).ready(function() {

        $('<div id="tools" style="text-align:right;float:right;"><input type="button" value="Print this page" onclick="window.print();return false;" /><input type="button" value="Save this page" onclick="go_saveas();return false;" /></div>')
            .prependTo('body');

    });
</script>

2

不要使用insertBefore,而是使用prependTo。

这样做:
<script type="text/javascript">
    $(document).ready(function() {
        $('<div id="tools" style="text-align:right;float:right;"><input type="button" value="Print this page" onclick="window.print();return false;" /><input type="button" value="Save this page" onclick="go_saveas();return false;" /></div>').prependTo('body');
    });
</script>

insertBefore将您的代码插入到标签之前。这就是为令您困扰的原因。幸运的是,Firefox已经将其更正为您想要的结果。现在,prependTo将其插入到标签内部,但在所有内容之前。 ;)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接