JavaScript - 用DOM函数替换document.write()

时间:2016-06-08 21:27:32

标签: javascript jquery dom

我正在寻找某种自定义泛型函数,它允许我使用JavaScript / jQuery动态创建元素。由于我使用的是XHTML和application/xhtml+xml MIME类型,因此我不得不使用DOM函数而不是document.write();。为jQuery采用以下回退代码:

if (!window.jQuery) {
    if (!navigator.userAgent.toLowerCase().match(/msie\s[5-8]/i)) {
        document.write('<script charset="UTF-8" type="application/javascript" src="/assets/scripts/jquery-2.min.js"><\/script>');
    } else {
        document.write('<script charset="UTF-8" type="text/javascript" src="/assets/scripts/jquery-1.min.js"><\/script>');
    }
}

浏览器控制台将显示错误,代码将不会执行。所以我认为我需要的是这样的:

function writeXHTML(tag) {
    // some ugly DOM-based code to execute in order for the tag to be created. Support IE, please!
}

然后像这样使用它:

if (!window.jQuery) {
    if (!navigator.userAgent.toLowerCase().match(/msie\s[5-8]/i)) {
        writeXHTML('<script charset="UTF-8" type="application/javascript" src="/assets/scripts/jquery-2.min.js"><\/script>');
    } else {
        writeXHTML('<script charset="UTF-8" type="text/javascript" src="/assets/scripts/jquery-1.min.js"><\/script>');
    }
}

显然,我需要在<head>之前,在依赖它的其他<script>之前创建jQuery脚本。而且我还需要从外部脚本完成这个,因为我不喜欢inlining:P 我想我可以使用id来做到这一点,但writeXHTML();函数应该有什么代码?提前谢谢!

0 个答案:

没有答案