我有两个脚本,一个将链接转换为可与 ajax 一起使用的 youtube 播放器,现在我想做同样的事情,但使用 img 链接将其转换为 img 标记,而这个脚本不适用于 ajax,我的意思是它在论坛帖子和寻呼机是 ajax,如果您转到下一页,则它不再起作用,您必须刷新窗口。
I-J-K
答案 0 :(得分:1)
您的脚本(底部与图像有关的内容)仅在页面加载时进行评估和调用。
Drupal 有一个名为 'Drupal.behaviors' 的 javascript 对象,它基本上是页面加载完成时将调用的函数列表,即。 '$(document).ready()' 或当 ajax 调用完成时。
您想要做的是将您自己的函数附加到此行为列表中,以便在页面加载或某些 ajax 完成时执行您的代码。您可以使用“Drupal.behaviors.YtUrlToPlayerBehaviour”查看其他 youtube 代码。
此代码可能对您有用。
Drupal.behaviors.myImageBehavior = {
attach: function (context, settings) {
$('a[href$=".png"], a[href$=".jpg"], a[href$=".gif"], a[href$=".tiff"], a[href$=".webp"]', context).each(function(){
$(this).html('<img src="' + $(this).attr('href') + '" />');
});
}
}
注意'context'变量,在页面加载时这将是文档,但在ajax调用之后,它将是ajax返回的内容。使用上下文变量确保您的代码仅在当时页面的新内容上运行。
与 Drupal 和 Javascript 的大多数事情一样,还有其他方法,但上面的代码是您在 Drupal 中执行的标准方法。