Javascript 使用DOM添加元素document.write

Javascript 使用DOM添加元素document.write,javascript,dom,xhtml,document.write,Javascript,Dom,Xhtml,Document.write,我刚刚了解到(不感谢IE),我不能用XHTML编写document.write脚本。然而,似乎有一种方法可以绕过它,即使用DOM添加元素。我不知道。这对我来说是陌生的 以下是JS: copyright=new Date(); update=copyright.getFullYear(); document.write("Copyright © 2004-"+ update + " flip-flop media"); 那么,有没有办法在XHTML中使用这个脚本呢?IE 8显示

我刚刚了解到(不感谢IE),我不能用XHTML编写document.write脚本。然而,似乎有一种方法可以绕过它,即使用DOM添加元素。我不知道。这对我来说是陌生的

以下是JS:

copyright=new Date();
update=copyright.getFullYear();
document.write("Copyright © 2004-"+ update + " flip-flop media");
那么,有没有办法在XHTML中使用这个脚本呢?IE 8显示一个带有错误警告的空白区域。IE 7正好显示了警告。FF确实正确地显示了它

它显示时没有错误,并正确显示在我的一个页面上:

但不在主页上:

看看jQuery,它将允许您以更简单的方式修改DOM。例如,您可以只执行
$(“#版权元素”).html(“版权©2004-”+更新+“触发器媒体”),而不是
文档.write

或者,如果您更喜欢纯Javascript,可以执行以下操作:

document.getElementById('copyrightElement').innerHTML = "Copyright © 2004-" + update + " flip-flop media";
其中,保存页脚文本的div/span/p/任何内容都分配了
id=“copyrightElement”
属性


但是,我建议在后端使用脚本语言(不确定您的网站使用什么)。禁用Javascript的用户将看不到您的版权声明。

您可以通过以下方式添加html:

   var a = document.createElement("a");
    a.setAttribute("href", "http://stackoverflow.com/questions/2371326/using-the-dom-to-add-elements-document-write");
    var top = document.getElementById("top");
    top.appendChild(a); 

回答您的问题: 将附加版权声明作为页面上的最后一个元素

(function(){
    // create almost any element this way...
    var el = document.createElement("div");
    // add some text to the element...
    el.innerHTML = "Copyright © 2004-"+ (new Date).getFullYear() + " flip-flop media";
    // "document.body" can be any element on the page.
    document.body.appendChild(el);
}());
您始终可以将“document.body”更改为您想要使用的任何元素。例如
document.getElementById(“版权”).appendChild(el)

jQuery

页面上已经有jQuery。 所以只要使用:

$(function(){
    // "body" is a css selector.
    // you can use almost any css selector 
    // to find the element you need. e.g. $("#copyright")...
    $("body").append("Copyright © 2004-"+ (new Date).getFullYear() + " flip-flop media");
    // you can also use html() to replace the existing content.
    // $("#copyright").html("content goes here");
});
你应该做什么:

使用服务器端技术,如php、.net等

您可能正在服务器上运行php,这意味着以下内容应该可以在页面中的任何位置工作(当然,如果它具有php扩展名(index.php而不是index.html)):


修复了它。找到一篇文章,我不明白它为什么会起作用,但我对JS所做的一切如下:

在脚本开始之前(添加): // 并在末尾(添加): //]]>

我之前曾尝试过这一点,但这篇文章在开头补充了这一点,误导了我: 带有CDATA标记的完整脚本:


//

版权声明应反映内容的创建日期。在不同的日期(即,无论当前年份是什么)申请版权可能对您弊大于利。所以你的问题最好通过完全删除JS来解决。如果内容是动态创建的,并且可能每天都在更改?我很好奇为什么这在你的主站点上不起作用。我本以为它不会在客户端网站上运行,因为你从一个稍有不同的域(www.flipflopmedia.com vs clients.flipflopmedia.com。)@tvanfosson如果你想声明,这篇文章应该有一个特定的发布日期。为什么不直接复制;触发器媒体?它说的基本上是同一件事——这一直是我的,也将永远是我的。(我不是律师;没有人起诉我。:D)@tvanfosson那么发布数据可以由发布内容的任何人处理(不太可能是客户端JS)。如果您不使用后端脚本语言,您可以指定默认-
版权和副本;2004-2010…
-并使用javascript将2010年替换为新的一年(一旦它发生变化)。这样,非javascript用户将看到2004-2010年,js用户将看到2004年。(不过,强烈建议您在后端执行此操作)。天哪,我太困惑了。只是将.html扩展名改为.php并添加您的php行:仅显示:2010触发器媒体我不知道如何实现上面的任何“函数”语句,但我尝试过的所有内容都忽略了“版权2004-”叫我哑巴,这不是我的强项!谢谢,特蕾西
<?php
    echo 'copyright &copy; 2004-' + date("Y") . ' flip-flop media';
?>