Я пытаюсь создать <iframe> используя JavaScript, затем добавьте <script> элемент к этому <iframe> , который я хочу запустить в контексте документа <iframe> d.
К сожалению, кажется, что я делаю что-то неправильно - мой JavaScript, кажется, успешно выполняется, но контекст <script> это родительская страница, а не документ <iframe> d. Я также получаю 301 Ошибка на вкладке "Нет" Firebug, когда браузер запрашивает iframe_test.js, хотя он снова запрашивает его (не уверен, почему?) Успешно.
Это код, который я использую (live demo at http://onespot.wsj.com/static/iframe_test.html):
iframe_test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title><iframe> test</title>
</head>
<body>
<div id="bucket"></div>
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#bucket').append('<iframe id="test"></iframe>');
setTimeout(function() {
var iframe_body = $('#test').contents().find('body');
iframe_body.append('<scr' + 'ipt type="text/javascript" src="http://onespot.wsj.com/static/iframe_test.js"></scr' + 'ipt>');
}, 100);
});
</script>
</body>
</html>
iframe_test.js
$(function() {
var test = '<p>Shouldn\'t this be inside the <iframe>?</p>';
$('body').append(test);
});
Одна вещь, которая кажется необычной, заключается в том, что работает код iframe_test.js; Я не загружал jQuery в <iframe> сам, только в родительском документе. Это кажется мне ключом, но я не могу понять, что это значит.
Любые идеи, предложения и т.д. будут высоко оценены!