javascript - 如何在动态加载的html页面中访问javascript变量?

标签 javascript jquery variables django-templates

我有一个 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/

相关文章:

javascript - 如何制作一个div onload功能?

jquery 日期时间选择器

C 多个单行声明

javascript - 使用 jquery/ajax 获取点击将值项编辑到另一个页面

javascript - 为数组 html javascript 中的每个值创建新行

javascript - 为什么分离 JavaScript 和 HTML 是一种好的做法?

javascript - Highchart xAxis 和值未对齐

javascript - 如何发送 Raphael 元素 .toBack()

Javascript 数组到 jQuery .post AJAX 调用

c - GTK/Glade 文本输入字符串到 C 中的全局变量