Горе Javascript от Safari с document.write - PullRequest
3 голосов
/ 27 января 2011

Моя проблема возникает только в Safari. IE, FF, Chrome и Opera работают без нареканий. Я добавляю объект в DOM (точно так же, как это делает YouTube, в зависимости от ActiveX или NPAPI), поэтому после определения типа объекта записи я добавляю его в DOM через:

document.write(MyObject)

В разделе заголовка страницы, чтобы к нему могли обращаться функции, вызываемые из тела. Работает на всем, кроме Safari. Единственный способ, которым я могу позволить Safari работать, это добавить предупреждение после document.write! Я даже попробовал setTimeout, но он работает один раз и не работает 10.

Ответы [ 2 ]

1 голос
/ 28 января 2011

Document.write не работает правильно в самом теле, и document.body.appendChild для добавления тега объекта не работает.

Так что я сделал

var objectContainer = createElement("div");
objectContainer.innerHTML = "<object blah blah> <\/object>"; //<--notice the escaping of /
document.body.appendChild(objectContainer);

И теперь это работает везде.

1 голос
/ 27 января 2011

Рассматривали ли вы использование document.body.appendChild(MyObject)?

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