执行在特定上下文中通过.ajax加载的<scripts> </scripts>

时间:2011-07-12 13:38:36

标签: javascript ajax jquery

我有一个包含多个容器的页面A,每个容器都加载了页面B的内容。页面B包含<script>标签中的一些HTML和Javascript。

我现在需要配置页面B中嵌入的JS - 让它知道它已加载到的DOM节点。

不幸的是,不能选择使用URL参数等进行服务器端处理。

简化示例 - 第A页:

<div id="container1"></div>
<div id="container2"></div>

<script type="text/javascript">
  $('#container1').load('pageB.html');
  $('#container2').load('pageB.html');
</script>

Page B:

<p>Lorem ipsum</p>
<script type="text/javascript">
  (function(){
    alert('I have been embedded into container #???');
  })();
</script>

我看到了实现这个目标的两种基本方法:

  1. 将信息从第A页传递到第B页
  2. 让B页中的脚本自行确定其位置
  3. For 1。:有没有办法在特定的绑定中执行通过AJAX加载的嵌入式JS /更改页面B中this的范围?

    对于2:是否有跨浏览器方式来获取对当前正在执行的<script>节点的引用?像Geckos document.currentScript

    之类的东西

1 个答案:

答案 0 :(得分:1)

尝试:

<p>Lorem ipsum</p>
<script type="text/javascript">
    (function($){
      var $container = $('script:last').parent();
      alert('I have been embedded into container #'+$container.attr('id'));
    })(jQuery);
</script>