2013-03-06 2 views
1

проверить эту скрипку: http://jsfiddle.net/GxPmU/запуска нажмите на IFRAME не работает

Я попытался связать событие щелчка на этой IFRAME, однако, нажав на IFRAME не вызывает событие щелчка соответственно

кроме того, поджигатель консоль также выводит ошибки:

Error: Permission denied to access property 'nodeType' 
[Break On This Error] 

if (selector.nodeType) { 

Любая идея, что я сделал не так и как быть в состоянии связать событие щелчка на IFRAME соответственно?

+2

Классический случай «[Same Origin Policy] (HTTP: // en.wikipedia.org/wiki/Same_origin_policy) "? – insertusernamehere

ответ

0

Как «Same origin policy» вы не можете получить событие click.

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

HTML

<iframe id="iframe-test-1" src="jsfiddle.net/404"></iframe> 
<iframe id="iframe-test-2" src="http://jsfiddle.net/404"></iframe> 

Demo

http://jsfiddle.net/V9WTA/

0

Если вы просто хотите знать, когда щелчок на любой части iFrame происходит, просто поместите iFrame в div и привязать событие к div.

+1

Не работает. http://jsfiddle.net/sWSUB/1/ –

0

Вам нужно указать z-индекс div, который должен быть перед iframe, а также сделать его абсолютным.

div#foo 
{ 
    z-index: 9999; 
    position: absolute; 
    width: 300px; 
    height: 300px; 
} 

Fiddle here.

Вам может понадобиться изменить размер и переместить DIV на основе фрейма.

+0

Это отключит взаимодействие с iframe. – insertusernamehere

+0

Это правда. Это только для эмуляции onclick; которые они не могут выполнить скрещиванием, как объясняется вашим ответом. – RenegadeMatrix

Смежные вопросы