我有一个 html 页面,它通过 Ajax 将另一个 html 页面加载到其 div 之一中。像这样的东西:
基本 html 页面:
<html>
<head>
<script type='text/javascript'>
var greeting = "Hello";
</script>
</head>
<body>
<div id="details-main-content">
</div>
</body>
</html>
加载到上面页面中的页面(使用 django 模板,因此放置在“head” block 中的任何内容最终都会出现在基本页面的“head”标记中):
{% block head %}
<script type="text/javascript" language="javascript">
alert("Greeting: " + greeting);
</script>
{% endblock %}
<div>
Hello, world!
</div>
当单击按钮时,通过 Javascript 函数(使用 JQuery)加载子内容,如下所示:
function loadContent(url) {
// Load external content via AJAX.
$( '.details-main-content' ).load( "/foo.html", function(){
});
}
页面加载正确,子内容在模板页面内完全显示所需的内容。
是否可以从内页访问基页中的 JS 变量(因为内页位于外页内部)?
非常感谢任何帮助。
谢谢
编辑:
我认为我遇到的问题是由于基本 html 页面中有以下行:
var gender = null;
var age = null;
每次通过 load() 函数加载新页面时,都会将变量重新初始化为 null。哎呀
最佳答案
是的。它只是加载之前和之后的单个页面(使用 XMLHttpRequest)。举一个简单的例子,如果您有:
var message = "Annoying message";
你可以有
<a href="#" onclick="alert(message);">Message</a>
在内页中。
编辑:如果您遇到问题,可能是由于 jQuery load 上注明的问题造成的。文档:
During this process, browsers often filter elements from the document such as
<html>
,<title>
, or<head>
elements. As a result, the elements retrieved by .load() may not be exactly the same as if the document were retrieved directly by the browser.
关于javascript - 如何在动态加载的html页面中访问javascript变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4395906/