上海戴文 - Drupal开发专家

你在这里

iframe jQuery 交互

编程的每日一篇,不知道什么时候坚持全连。。

 

今天的问题是富一代姐姐在一个项目要用一个ifame在Drupal里呈现别的东西。。然后那个东西屏蔽了jQuery. (因为人家是prototype建的)

按理说Drupal的jQuery在核心导入的时候是noconflict的。。但是试了一下 用

jQuery获取不到iframe里面的内容 

后来的后来,富一代姐姐发现问题了。。官方网站上的:

$(document).ready(function () {
  // Do some fancy stuff.
});

Drupal.behaviors.myModuleBehavior = {
  attach: function (context, settings) {
    $('input.myCustomBehavior', context).once('myCustomBehavior', function () {
      // Apply the myCustomBehaviour effect to the elements only once.
    });
  }
};

两种写法都是在页面load好的时候,开始行动。。所以。。。iframe里的内容还没有ready啊。

后来为了解决这问题,修改了iframe里面的源文件 ready之后调用父窗口的方法。

子窗口加入

window.parent.方法()

父类直接定义

function 方法 ()

就行了

兼容模式。jQuery里面比较重要的概念,Drupal里一直在用,第二种写法在Drupal里比较推荐。即注册一个行为 在行为里面写jquery这样。但不管怎么说,它是真的没有管iframe里面有没有ready。

 

tags: 
articles: 
field_vote: 

猜你喜欢