Загрузка содержимого HTML через Javascript в некоторых случаях обнуляет мой тег <title> - PullRequest
4 голосов
/ 15 апреля 2010

Это проблема только Explorer, и симптомы:

У меня есть ссылки, которые при щелчке будут загружать куски HTML (ни одна из которых не содержит тегов заголовка html), используя javascript. Куски html помещаются в различные <div> s по всей странице, возможно, в 3 разных местах с 3 разными чанками, введенными через javascript.

Когда эти куски загружаются в тег <title> страницы, устанавливается по <title></title> по неизвестной (для меня) причине. Я использовал панель инструментов разработчика IE, чтобы убедиться в этом, проверив дерево DOM.

У меня есть другие страницы, которые делают подобные вещи, но там нет проблем.

Редактировать: Дальнейшая проверка показывает, что swfObject как-то связан с этим. У одного из блоков, которые я ввожу, есть SWF, который включен swfObject. Если я отключу вызов swfObject, страница больше не будет зарезана.

Редактировать: код:

/**
* getContentItemById()
* @itemId = string
* @contentType = string
*/
function getContentItemById(itemId, contentType, subType) {
    $j.ajax({
        type: "GET",
        cache: false,
        url: "/gallery/",
        data: "contentType=" + contentType + "&itemId=" + itemId + "&slice=itemView" + "&subType=" + subType,
        dataType: "html",
        beforeSend: function (XMLHttpRequest) {
            $j("#viewer").fadeOut();
        },
        success: function(html){
            $j("#viewer").html(html).fadeIn();
            if (itemId && contentType) {
                var state = {};
                state["itemId"] = itemId;
                $j.bbq.pushState(state, 0);
            }
           },
        error:function (xhr, ajaxOptions, thrownError){
                //alert("Error code: " + xhr.statusText);
            }
    });

1 Ответ

0 голосов
/ 05 ноября 2012

Поскольку вы используете jQuery, вы также можете попробовать .load(), что является более простым методом для достижения того, чего вы пытаетесь достичь.

function getContentItemById(itemId, contentType, subType) {
    var data = "contentType=" + contentType + "&itemId=" + itemId + "&slice=itemView" + "&subType=" + subType;
    $('#viewer').load('/gallery/ #'+itemId, data, function() { //oncomplete function
            if (itemId && contentType) {
                var state = {};
                state["itemId"] = itemId;
                $j.bbq.pushState(state, 0);
            });
}

Обратитесь к документации API, чтобы понять работу .load() http://api.jquery.com/load/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...