2013-08-30 8 views
2

У меня проблема с использованием jQuery внутри iFrame.Использование jQuery внутри iFrame не работает

Вот мой тест установка:

index.html:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Untitled Document</title> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
<script type="text/javascript"> 

$(document).ready(function(){ 
    $("#A").contents().find('#B').addClass('Z');  
}); 

</script> 
</head> 
<body> 

<iframe id="A" src="test.html" style="width:700px; height: 1000px;" frameborder="0"></iframe> 

</body> 
</html> 

test.html:

<html> 
<head> 
<title>test</title> 
</head> 
<body> 
<div id="B">testcontent</div> 
</body> 
</html> 

Обычно при загрузке страницы в источнике , «Z» следует добавить как класс, но это не так. Кто-нибудь может понять, в чем проблема? Оба файла находятся в одной и той же (локальной) папке.

+0

Это может быть, что функция выполняется перед загрузкой содержимого фрейма. Попробуйте сделать: $ ('iframe'). Ready (function() {}); вместо этого и посмотреть, работает ли он –

+0

. Уже на iframe ничего не полезно. .load, с другой стороны, может помочь. –

ответ

3

Вы должны запустить его с веб-сервера со схемой HTTP (http:// или https://).

Использование схемы файлов (file://) предотвращает такой доступ к кросс-кадру в некоторых браузерах.

7

попробовать это

$("iframe").load(function(e){ 
    $(this).contents().find('#B').addClass('Z'); 
}); 
+0

Это не работает – user63457

+2

КОРРЕКЦИЯ: один раз на веб-сервере это работает! – user63457