javascript - 仅替换 iframe 的编码字符 Jquery

标签 javascript jquery html iframe

我使用的 CMS 中的 WYSIWYYG 编辑器正在删除 iframe 代码,以便此代码

<p><iframe src="http://www.example.com" frameborder="0" width="300" height="300" scrolling="no"></iframe></p>

加载到页面时显示如下

<p>&lt;iframe src="http://www.example.com" frameborder="0" width="300" height="300" scrolling="no"&gt;&lt;/iframe&gt;</p>

我使用此代码修复了它。

$('p').each(function () {
    var $this = $(this);
    var tt = $this.text();
    $this.html(tt.replace('&lt', '<').replace('&gt', '>'));
});

但是,如果我的页面上还有其他标签,例如

<p><strong>Strong text </strong></p>

这也被剥离出来看起来像

<p>Strong text </p>

如何才能使此更改仅适用于 iframe?

我已经尝试过类似的方法,但没有成功。

$this.html(tt.replace('&lt;iframe', '<iframe').replace('&gt;&lt;/iframe&gt;', '</iframe>'));

最佳答案

我最终通过使用 :contains eg 让它工作

$('p:contains("iframe")').each(function () {
    var $this = $(this);
    var tt = $this.text();
    $this.html(tt.replace('&lt', '<').replace('&gt', '>'));
});

不是最好的解决方案,但这适用于网站所追求的目标。

关于javascript - 仅替换 iframe 的编码字符 Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20624568/

相关文章:

javascript - 显示/隐藏信息 jQuery

javascript - React-router 6.0 - useLoaderData 返回一个 promise 。无法显示数据

javascript - 你能选择用 Babel 转译哪些 ES6 特性吗?

html - 如何在没有html标签的情况下强制换行

html - 翻转图像 - 仅在浏览器中

javascript - javascript修改后如何显示原来的圆?

javascript - Javascript/PHP/Codeigniter 中的悬停事件

javascript - 在 jQuery 倒数计时器中更改日期

javascript - 延迟后显示 Bootstrap 模态

html - 在页面中心对齐导航栏