javascript - 缩小 JS 会导致将外部 JS 嵌入我的网站时出现问题吗?如果是这样,我该如何解决这个问题?
问题描述
我目前正在使用 WordPress 构建我们公司的网站,并且遇到了一些嵌入 html 片段的问题,该片段指向各种菜单并将该菜单呈现为我们网站上的小部件(下面的片段):
<div id="leafly-menu">
</div>
<div style="text-align:center;">
Visit our profile on <a href="https://www.leafly.com/dispensary-
info/happy-hemp">Leafly</a>
</div>
<script
src="https://www.leafly.com/public/global/js/dispensarymana
ger/embed.js">
</script>
<script>
var pymParent = pym.Parent('leafly-menu',
'https://www.leafly.com/embed/menu2/happy-hemp', {});
</script>
这工作了一段时间。当像任何人一样访问该网站时,菜单会按应有的方式呈现和操作。然而,从那以后,我有更多的时间来建立一个更充实的网站/设计,现在这个片段不再有效。这个 HTML 片段是 Leafly 提供的 HTML 片段,因此我自己无法控制该片段的实际 JS 或 HTML,也无权更改有关我的网站如何从其末端获取 JS 文件的任何参数。
以下是用于构建网站的一些更值得注意的事情的细分:
- 内容管理系统:WordPress
- 值得注意的插件:Elementor PRO(页面构建器)| Premium Addons PRO(Elementor 扩展)
- 性能插件:WP Rocket(缓存和性能)| Imagify (WP Rocket 扩展/媒体文件压缩) | Cloudflare(CDN;*缓存策略与 WP Rocket 集成并由其控制)
除了美学之外,我对网站所做的唯一真正改变是试图关注优化和性能。取而代之的是,我选择购买 WP Rocket;WordPress 网站的插件,可帮助控制其他提供的功能列表中的缓存策略。大约在这个时候,我注意到该片段停止工作。
请记住,WP Rocket 集成并控制了我的 Cloudflare CDN 的缓存策略,WP Rocket 还允许缩小 JS、HTML 和 CSS。在做一些研究时,我选择使用 WP Rocket 的以下功能:
- HTML 缩小
- 结合谷歌字体
- CSS 缩小
- JS 缩小(不包括此路径的任何 JS:www.leafly.com/public/global/js/dispensarymanager/embed.js)
- 延迟 JS
- JQuery 的安全模式
- 缓存预加载(每 24 小时自动预加载)
现在,我已经尝试了所有我想亲自检查的东西。在我的缓存策略中,我已经排除了来自“leafly.com/”的所有内容,我尝试在我的 Cloudflare 防火墙规则和例外中将“leafly.com/”列入白名单。我尝试在 Leafly 提供的代码段中重构 HTML;等等。任何我能想到的可能会导致渲染 Leafly 嵌入的 JS 的问题,我试图禁用。不过,没有雪茄。
那么这导致我问:
- 什么会导致来自第 3 方的 HTML 嵌入——它曾经工作过,突然停止工作/正确渲染?
- 缩小我的 JS 或 CSS 是否会导致或成为此问题的根源?
伙计们(和女孩们),我在这里画一个空白。我只是无法弄清楚这该死的事情,并且会喜欢一些有关故障排除和解决方案的建议。
这是在访问菜单应位于的区域中的站点时向最终用户提供 HTML 的方式。
<div class="elementor-element elementor-element-9bb0fdd elementor-widget
elementor-widget-global elementor-global-1233 elementor-widget-html"
data-id="9bb0fdd" data-element_type="widget" data-
widget_type="html.default">
<div class="elementor-widget-container">
<div id="leafly-menu">
<div style="text-align:center;">
Visit our profile on
<a href="https://www.leafly.com/dispensary-
info/happy-hemp">
Leafly
</a>
</div>
<script src=
"//www.leafly.com/public/global/js/
dispensarymanager/embed.js" defer="">
</script>
<script>
var pymParent = pym.Parent('leafly-menu',
'https://www.leafly.com/embed/menu2/happy-
hemp', {});
</script>
</div>
</div>
</div>
这是一个链接,比较了它应该呈现的样子和它现在真正呈现的样子:
- 它应该呈现的内容:https ://imgur.com/0w1OKyY
- 它的实际呈现方式:https ://imgur.com/VJw72yU
以下是 Leafly 提供的全局 JS 文件的链接:
我能够收集到的唯一提示是通过检查网页本身的 div 容器;在开发控制台的底部,我看到一个带有感叹号的黄色三角形——上面写着:
- JQMIGRATE:已安装 Migrate,版本 1.4.1 content.min.js:2 [弃用] Element.createShadowRoot 已弃用,将于 2019 年 3 月左右在 M73 中删除。请改用 Element.attachShadow。 有关详细信息,请参阅https://www.chromestatus.com/features/4507242028072960 。
如果有人对解决或解决此问题的最佳方法有任何想法,请帮助兄弟:P
谢谢!
解决方案
推荐阅读
- datatables - 如何从数据表中删除一行
- java - 有没有办法为 Eclipse 视图指定多个处理程序类?
- keycloak - 设置 Keycloak 进行身份验证
- python - 如何创建允许用户根据列(python)中的值过滤树视图的按钮或选项?
- wpf - 如何将多个着色器效果应用于 DrawingVisual?
- php - Symfony docker 配置中的两个服务
- python - 从一个图中的坐标列表中绘制多条线
- javascript - Vue Js在select2中没有得到select选项值
- javascript - Redsys 问题(MVC .net 项目) - 不显示付款消息
- angular - LoginPage 是 2 个模块声明的一部分