如何从XHTML中的Document.Write中删除Div和Img标签

时间:2012-12-01 00:28:15

标签: javascript jquery html jquery-plugins

我要做的是在足够大的屏幕上显示全屏幕背景图像,它适用于大多数浏览器,但它会导致其他浏览器出现问题。我通过W3 Validator运行它,它说XHTML不支持document.write中的Div和Img标签。如果没有document.write,我还能如何编写代码以便它能通过验证器而不会在某些浏览器上导致错误?

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="jquery.fullscreenBackground.js"></script>
<script type="text/javascript">
$(document).ready(function () {
        $("#background-image").fullscreenBackground();
    });
</script>

            <script type="text/javascript">
var viewPortWidth = $(window).width();
var viewPortHeight = $(window).height();
if (viewPortHeight >= 300 && viewPortWidth >= 400) {
document.write("<div id='background-image'><img src='BGLarge.gif' alt='background' width='1920' height='1080' ></div>");
}
else {
document.write("");
}
</script>

3 个答案:

答案 0 :(得分:2)

使用jquery来添加元素:http://api.jquery.com/prepend/

这应该有效。或者你可以改变你的doctype。

答案 1 :(得分:2)

if (viewPortHeight >= 300 && viewPortWidth >= 400) {
  $('body').prepend('<div id="background-image"><img src="http://thetylerpress.com/new/BGLarge.gif" alt="background" width="1920" height="1080" ></div>');
}

你不需要else语句

答案 2 :(得分:1)

知道哪个浏览器引发错误会很有用。无论如何,为什么不使用jQuery来实现你想要的呢?

$('body').prepend(
    $('<div></div>')
        .attr('id', 'background-image')
        .html("<img src='http://thetylerpress.com/new/BGLarge.gif' alt='background' width='1920' height='1080' >")
);​

实例:http://jsfiddle.net/Wyd43/