javascript - 如何使用jquery监听页面上的 "meta"属性变化?

标签 javascript jquery google-chrome-extension meta-tags meta

我正在编写一个 chrome 扩展,我想在其中监听页面上的 DOM 变化。最初,当页面加载时,“头部”有

<meta property="og:title" content="XYZ">

但是单击另一个链接后,页面会执行 ajax 并更改 DOM。

<meta property="og:title" content="ABC">

我有这段代码来监听头部的变化。但它没有捕获变化。

$('head').on("DOMSubtreeModified", function(e){
   title = $('meta[property=og\\:title]').attr("content");
   console.log('Title - ' + title);
});

我如何聆听并捕捉这一变化?

当我这样做时var title = $('meta[property=og\\:title]').attr("content");

标题始终为“XYZ”并且不会更改为“ABC”

最佳答案

您可以使用MutationObserver听取对 <meta> 所做的任何更改元素。

例如:

var ob = new MutationObserver(function(mutations){
  mutations.forEach(function(m){
    if (m.type === 'attributes' && m.attributeName === 'content') {
      // Do something
    }
});

ob.observe($('meta[property=og\\:title]')[0], {attributes: true});

另请参阅:https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

关于javascript - 如何使用jquery监听页面上的 "meta"属性变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32003326/

相关文章:

javascript - 寻找一个非常简单的 UpdateListItems for SPservices with Sharepoint 2007 示例

javascript - 使用 jquery 关闭 css 下拉列表

javascript - 是什么导致了 "Unchecked runtime.lastError: The message port closed before a response was received."警告?

javascript - polymer - 结束绑定(bind)事件时 dom-repeat?

javascript - 如果用户在下拉列表外部单击,则关闭下拉列表

javascript - CSS3 过渡动画

javascript - 在不知道子元素ID的情况下更改子元素的宽度

javascript - jQuery - 多个文本区域计数字符只更新 DOM 中的第一个

javascript - XMLHttpRequest 获取具有动态内容的 DOM

javascript - 从 Chrome 扩展程序内部写入 Google 文档