используя DOM для добавления элементов, document.write - PullRequest
4 голосов
/ 03 марта 2010

Я только что узнал (нет, спасибо IE), что я не могу использовать сценарии document.write в XHTML. Однако, кажется, что есть способ обойти это, используя DOM для добавления элементов. Я не знаю. Это чуждо мне.

Вот JS:

copyright=new Date();
update=copyright.getFullYear();
document.write("Copyright © 2004-"+ update + " flip-flop media");

Итак, есть ли способ использовать этот скрипт в XHTML? IE 8 показывает пустое место с предупреждением об ошибке. IE 7 показывает только предупреждение. FF отображает его правильно.

И он отображается без ошибок и правильно отображается на одной из моих страниц: http://clients.flipflopmedia.com

Но не на главной странице: http://www.flipflopmedia.com/NewSite/index.html

Ответы [ 4 ]

6 голосов
/ 03 марта 2010

Чтобы ответить на ваш вопрос: добавит уведомление об авторских правах в качестве последнего элемента на странице.

(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("copyright").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), конечно):

<?php
    echo 'copyright &copy; 2004-' + date("Y") . ' flip-flop media';
?>
3 голосов
/ 03 марта 2010

Посмотрите на jQuery, который позволит вам изменить DOM намного проще. Например, вместо строки document.write вы можете просто набрать $('#copyrightElement').html("Copyright © 2004-" + update + " flip-flop media");

Или, если вы предпочитаете простой Javascript, вы можете сделать что-то вроде:

document.getElementById('copyrightElement').innerHTML = "Copyright © 2004-" + update + " flip-flop media";

Где div / span / p / независимо от того, что содержит текст нижнего колонтитула, имеет атрибут id="copyrightElement".

Однако я бы посоветовал сделать это на языке сценариев на сервере (не уверен, что использует ваш веб-сайт.) Пользователи, у которых отключен Javascript, не увидят ваше заявление об авторских правах.

1 голос
/ 03 марта 2010

Исправлено. Нашел статью, и я не понимаю, почему она работает, но вот все, что я сделал с JS:

Перед началом сценария (добавлено): //

И в конце (добавлено): //]]>

Я пробовал это раньше, но статья дезинформировала меня, сказав добавить это в начале:

Полный скрипт с разметкой CDATA:

//

0 голосов
/ 03 марта 2010

Вы можете добавить html следующим образом:

   var a = document.createElement("a");
    a.setAttribute("href", "/2048486/ispolzuya-dom-dlya-dobavleniya-elementov-document-write");
    var top = document.getElementById("top");
    top.appendChild(a); 
...