gpt4 book ai didi

javascript - 如果 Jquery 作为异步加载,为什么这段 Javascript 代码无法在 Chrome 上运行?

转载 作者:行者123 更新时间:2023-12-01 02:50:35 24 4
gpt4 key购买 nike

我正在开发的 WP 主题中有一个 JavaScript,它隐藏了 <p> 内的部分文本。带有“更多”类的标签。我将 Jquery 设置为在 header 中异步加载,但由于某种原因,它在 Firefox 上运行良好,但在 Chrome 上运行不佳。根据我的理解,对所有独立脚本使用 async 属性总是好的。

标题:

<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/css/bootstrap.css">
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/style.css">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro" rel="stylesheet">
<script async src="https://use.fontawesome.com/726be72ac8.js"></script>
<script async src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

提供隐藏文本功能的 JavaScript 代码紧接在开头 <body> 后面。这样我可以确保它在 <p> 之前执行。标签已加载:

<script>
$(document).ready(function() {
var showChar = 150;
var ellipsestext = "...";
var moretext = "more";
var lesstext = "less";
$('.more').each(function() {
var content = $(this).html();

if(content.length > showChar) {

var c = content.substr(0, showChar);
var h = content.substr(showChar-1, content.length - showChar);

var html = c + '<span class="moreellipses">' + ellipsestext+ '&nbsp;</span><span class="morecontent"><span>' + h + '</span>&nbsp;&nbsp;<a href="" class="morelink">' + moretext + '</a></span>';

$(this).html(html);
}

});

$(".morelink").click(function(){
if($(this).hasClass("less")) {
$(this).removeClass("less");
$(this).html(moretext);
} else {
$(this).addClass("less");
$(this).html(lesstext);
}
$(this).parent().prev().toggle();
$(this).prev().toggle();
return false;
});
});
</script>

标签:

<p class="more">Text goes here</p>

如果我删除异步属性,它在 Chrome 上工作正常。

最佳答案

添加异步告诉浏览器可以代码之后运行 jQuery 脚本 - 尽管不能保证这一点,并且只要浏览器决定运行脚本就可以运行它。所以即使它在 Firefox 中工作,在这种情况下也是不合适的。

关于javascript - 如果 Jquery 作为异步加载,为什么这段 Javascript 代码无法在 Chrome 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46992035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com