如何使链接到 img 标签与 ajax 一起使用

时间:2021-03-28 21:06:42

标签: javascript jquery ajax drupal

我有两个脚本,一个将链接转换为可与 ajax 一起使用的 youtube 播放器,现在我想做同样的事情,但使用 img 链接将其转换为 img 标记,而这个脚本不适用于 ajax,我的意思是它在论坛帖子和寻呼机是 ajax,如果您转到下一页,则它不再起作用,您必须刷新窗口。

I-J-K

1 个答案:

答案 0 :(得分:1)

您的脚本(底部与图像有关的内容)仅在页面加载时进行评估和调用。

Drupal 有一个名为 'Drupal.behaviors' 的 javascript 对象,它基本上是页面加载完成时将调用的函数列表,即。 '$(document).ready()' 或当 ajax 调用完成时。

您想要做的是将您自己的函数附加到此行为列表中,以便在页面加载或某些 ajax 完成时执行您的代码。您可以使用“Drupal.behaviors.YtUrlToPlayerBehaviour”查看其他 youtube 代码。

如果您想了解更多详情,请阅读 herehere

此代码可能对您有用。

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 中执行的标准方法。