#javascript #html #safari #webkit
#javascript #HTML #safari #webkit
Вопрос:
В браузерах на основе AppleWebKit замечено, что изменение атрибута данных HTMLObjectElement (тега объекта) не приводит к отправке HTTP-запроса на URL-адрес и загрузке ресурса. Это отлично работает в FireFox и Chrome, но не в Safari и других браузерах AppleWebKit. Ниже приведен мой код. Пожалуйста, предложите решение, как я могу динамически устанавливать данные в теге объекта
<html>
<head>
<script type="text/javascript">
window.onload = function(){
c= document.getElementById('test');
c.setAttributeNS(null,'data','http://myserver.com/SVG/MyImage.svg');
}
</script>
</head>
<body>
<object id="test" data="" type="image/svg xml" width="320" height="240" />
</body>
</html>
Комментарии:
1. Что произойдет, если вы просто установите
c.data
эту строку напрямую, без использования «setAttributeNS()»?2.
setAttribute('data','<url');
работает ли?3. Рак (или кто-либо еще), вы нашли решение этой проблемы? У нас та же проблема 8 лет спустя! Мы обнаруживаем, что теги объектов, которые динамически загружаются, аналогичные приведенным выше, не будут последовательно загружаться в Safari / iOS Chrome (что на самом деле является webkit). Chrome на Windows или iOS загрузит приведенный выше код безупречно.
Ответ №1:
атрибуты — это кошмар кроссбраузерности, смотрите здесь-> http://www.quirksmode.org/dom/w3c_core.html#attributes
jQuery реализует это через кросс-браузер -> http://api.jquery.com/attr /
Комментарии:
1. Даже с jquery это не работает для Safari, но работает для Chrome и FireFox