getElementById在Safari中返回null或undefined

时间:2012-05-25 14:54:35

标签: javascript dom safari

下面是我试图在javascript中使用DOM遍历的一些帧的代码片段。我可以在FF和IE中使用document.getElementById('raiseConfirm').click()。它不适用于野生动物园。我已经尝试了很多不同的东西来尝试使用ID raiseConfirm到达锚点。看起来好像document.getElementById()在这种情况下找不到此框架中的任何元素。我尝试了window.documentself.documentcontentWindowcontentDocument,我尝试过命名这样的框架window.frames['gvdd'].document,当我测试这个时,文档是一个对象并且包含其中的内容,但是一旦我尝试在其上使用函数getElementById(),它就会返回undefinednull

有人能指出我正确的解决方案吗?

  <form method=​"POST" 
        action=​"somescript.asp?CMD=POST&​TODO=TRUE2" 
        id=​"FORMSV2DISPLAY"
        name=​"FORMSV2DISPLAY">​
    <a id=​"raiseConfirm" href=​"#divConfirm" class=​"nyroModal">HERE IT IS​</a> 
    <div id="divConfirm" style=​"display:​none;​">​…​</div>​ 

4 个答案:

答案 0 :(得分:1)

您可以使用jquery:

$('#raiseConfirm')

它肯定适用于所有浏览器。 那是jquery的魔力:)

如果你想附加点击事件:

$(document).ready(function () {
    $("#raiseConfirm").click(doSomenthing);
});

var doSomenthing = function () {
    /* Something I do here */
}

答案 1 :(得分:1)

之前我曾试着这么说,但是很奇怪。我能够使用JQuery解决这个问题,这就是我所做的。

      $("#raiseConfirm").trigger("click");

答案 2 :(得分:1)

document.getElementById()在Safari中不起作用。相反,你需要使用document.all ... 因此,JQuery进入了所有浏览器都支持的图片。这可能是Javascript和JQuery在哪里使用的主要区别。

答案 3 :(得分:0)

我在JSFiddle中试过这个。如果没有jQuery,我无法在Safari中使用它。

http://jsfiddle.net/belthasar/Zct4S/