无法在jQuery中为“Object”标记设置“data”属性。 [仅限IE8]

时间:2013-05-03 22:17:32

标签: javascript jquery html internet-explorer internet-explorer-8

我在jQuery中动态创建一个对象元素,以呈现一些内容。它适用于IE8以外的所有浏览器。

代码:

    j$(document).ready(function(){ 
        j$('.objContainer').html(j$('<object>').attr(
                            {'data':'http://www.stackoverflow.com',
                             'type':'text/html'}));
    });

执行后创建的HTML结构(在IE8中):

    <object type="text/html"></object>

在其他浏览器中[IE9,Firefox,Chrome]:

    <object data="http://www.stackoverflow.com" type="text/html"></object>

任何解决方案?

3 个答案:

答案 0 :(得分:3)

适合我:使用IE8开发人员工具,我可以看到数据属性。这是一个screenshot

(我知道我不应该这么说,但是:你需要确保你允许脚本运行。)

答案 1 :(得分:1)

如果看到here IE 不支持数据(数据集)。
您可以做的是重命名 数据 data-foo then $(..).data("foo")将有效 甚至在 IE 中,因为jquery本身的特殊处理。
这是绕过 IE 数据集限制的一种方法。

答案 2 :(得分:1)

它应该可以正常工作,虽然我建议你使用$ .data()方法

http://api.jquery.com/jQuery.data/

它更加安全,jQuery确保在通过jQuery方法删除DOM元素时删除数据。

示例:

<object id='myObj' data-url="http://www.stackoverflow.com" type="text/html"></object>

您可以阅读以下值:

var url = $('#myObj').data('url');// Read the value
$('#myObj').data('url', 'some-other-value');// Set a new value