04/3
2024
刚才我注意到文章页面的控制台有个报错:
一看是有一处 js 代码没判空,费了好大劲才找到是插件 WP Githuber MD 添加的代码,将其删除或修改就好了。
当时的网页源码是这样的,上面红框处的代码导致了错误:
我一看它的作用其实和下面我自己加的“在新标签页打开超链接”是一模一样的,但是它有个地方没判空导致了报错。
<script id="preference-link-target">
(function($) {
$(function () {
$(".post").find("a").each(function () {
var link_href = $(this).attr("href");
// link_href 没判空,如果是 undefined 就会报错
if (link_href.indexOf("#") == -1) {
$(this).attr("target", "_blank");
}
});
});
})(jQuery);
</script>
坑就坑在当时不知道这个代码是哪里来的,在模板里这里是 wp_footer()
函数,那只能在其他文件里找了,我在模板目录里左找右找都没找到,最后才发现是在 plugins 里。
/wp-content/plugins/wp-githuber-md/src/Views/assets/js.php
:
由于我自己写了这个功能代码了,所以我把里面的内容清空了,这样就不会报错了。
也可以在 link_href
后面加个问号,改成 link_href?.indexOf
就可以修复这个错误。
感谢插件作者写的低质量代码。其实该插件还有个 js 文件里有相同的代码,不过这个 js 文件只影响编辑器,不会影响前台页面,所以我就懒得改了。如果你也用这个插件,可以在插件目录里使用命令grep -R link_href *
搜索出来。