onClick parent getElementById.click (); не работает в ХРОМЕ - PullRequest
0 голосов
/ 16 февраля 2011

Я старался изо всех сил, чтобы решить эту проблему, но я действительно не могу найти, что не так. Я не очень разбираюсь в javascript, поэтому, возможно, мне чего-то не хватает.

Прямо сейчас, после того, как я скопировал код, который я нашел, чтобы позволить браузерам помимо IE регистрировать click (); он отлично работает в любом браузере, кроме Chrome . Я протестировал IE, FF, Safari и Opera, они все работают.

Моя настройка заключается в том, что у меня есть iframe с кнопками, которые должны активировать галерею shadowbox в родительском элементе.

Мой скрипт на главной странице (index.html):

<head>

//shadowbox linking
<link rel="stylesheet" type="text/css" href="shadowbox/shadowbox.css">
<script type="text/javascript" src="shadowbox/shadowbox.js"></script>
<script type="text/javascript">
Shadowbox.init();
</script>

//included based on what I found online to enable the click(); method to work in browsers besides IE)
<script type="text/javascript">
if(typeof HTMLElement!='undefined'&&!HTMLElement.prototype.click)
HTMLElement.prototype.click=function(){
var evt = this.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
this.dispatchEvent(evt); }
</script>

</head>

<body>
<a id="web1" href="http://www.google.com/" rel="shadowbox[gallery]"></a>
<a id="web2" href="http://www.yahoo.com/" rel="shadowbox[gallery]"></a>

<iframe src="frame.html">You can't see
iframes.</iframe>
</body>

Моя ссылка в iframe (frame.html):

<a href="#" onClick="parent.document.getElementById('web1').click();">Link1</a>
<a href="#" onClick="parent.document.getElementById('web2').click();">Link2</a>

Я действительно надеюсь, что кто-то может мне помочь =) Спасибо!

Ответы [ 2 ]

1 голос
/ 16 февраля 2011

О, кажется, я нашел проблему -_-

В скрипте нет ничего плохого, он отлично работает. Просто кажется, что Chrome имеет некоторые проблемы с безопасностью, когда файлы размещаются локально. Я загрузил файлы онлайн, и все работает отлично. =)

Я надеюсь, что это поможет кому-то, кто случайно столкнется с этим, особенно связывая Shadowbox из iframe, когда я наткнулся на немало постов об этом.

0 голосов
/ 08 февраля 2012

.click () не поддерживается (хорошо) в Chrome.Одним из способов обойти это является использование jQuery.Конвертировать getElementById('web2').click() в $("#web2").click().

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