#javascript #safari
#javascript #safari
Вопрос:
Следующий JavaScript отлично работает в более старых версиях Safari (Safari 3), но не в последней версии Safari.
Можете ли вы помочь мне найти проблему?
function loadframe(){
var iframeEl = document.getElementById("ifrm");
if(!iframeEl)
{
window.alert('hellooooooo');
var el = document.createElement("div");
el.innerHTML = '<iframe id="ifrm" width="0" height="0" src='<!--EP CLASS="com.epiphany.presentation.ServerURLWriter" ACTION="campaign_segment_load" TEMPLATE="campaign\campaign_segments" -->' onload="dw_display('ifrm','segmentspn')" ></iframe>';
document.body.appendChild(el);
return true;
}
return false;
}
Комментарии:
1. Я думаю, вам придется предоставить некоторое объяснение того, что должна делать эта причудливая разметка. В общем, простой вопрос о том, почему что-то «не работает», не сообщая, что происходит в сравнении с тем, что должно произойти, вряд ли даст большой ответ.
2. Вместо if(!iframE1) лучше использовать if (iframE1 != null amp;amp; iframE1 != undefined). И, пожалуйста, дайте больше объяснений о скрипте и проблеме.
3. Вместо последней версии лучше указать точный номер версии.
4. Определите «не работает» получаете ли вы какие-либо ошибки в консоли JS (я предполагаю, что в Safari есть такая вещь).
5. Вы должны подробно описать, что вы хотите, чтобы код делал, и что он на самом деле делает. Никто не собирается устанавливать несколько версий Safari и пытаться найти ошибки в вашем коде.
Ответ №1:
function loadframe()
{
var iframeEl = document.getElementById("ifrm");
if(!iframeEl)
{
var el = document.createElement('div');
var e2 = document.createElement('iframe');
e2.src ="http://google.com";
e2.setAttribute('id',ifrm);
e2.width= 80;
e2.height= 80;
document.body.appendChild(el);
el.appendChild(e2);
return true;
}
return false;
}
Это будет работать во всех браузерах, поскольку iframe — это еще один элемент, мы должны добавить его с помощью метода DOM.