Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript.click()未在启用CloudFlare的情况下工作_Javascript_Html_Cloudflare - Fatal编程技术网

JavaScript.click()未在启用CloudFlare的情况下工作

JavaScript.click()未在启用CloudFlare的情况下工作,javascript,html,cloudflare,Javascript,Html,Cloudflare,我有一个HTML+CSS页面,其中有两个按钮: <!-- Tab links --> <div class="text-center"> <button class="tablinks" onclick="openCity(event, 'top-reviews')" id="defaultOpen">Top reviews</button> <

我有一个HTML+CSS页面,其中有两个按钮:

 <!-- Tab links -->
<div class="text-center">
    <button class="tablinks" onclick="openCity(event, 'top-reviews')" id="defaultOpen">Top reviews</button>
    <button class="tablinks" onclick="openCity(event, 'most-recent')">Most recent</button>
</div>

热门评论
最近的
我希望“热门评论”在默认情况下可见。因此,在页面的末尾,我放了简单的JavaScript

<script>
document.getElementById("defaultOpen").click();
</script>  

document.getElementById(“defaultOpen”)。单击();
自动点击“热门评论”按钮

在我的开发环境中,一切都很好。但当将代码上载到启用CloudFlare的生产服务器时。JavaScript click()函数不起作用

我已经就此问题向CloudFlare支持部门写信,但两天后仍然没有任何回应

你对我如何调试为什么这个JavaScript不能工作有什么想法吗?或者如何通过另一种方式使“热门评论”的内容可见,而不需要访问者用鼠标点击按钮?

Cloudflare的一个常见问题是,它试图优化加载过程以加快站点速度。但有时它也会因为异步加载资源而破坏javascript

您可以通过以下步骤禁用Rocket Loader:

Speed -> Optimization -> Rocket Loader -> Off
多谢各位

你的想法行得通

我通过以下方式更改JavaScript加载:

<body onload="LoadTopReviews()">
<!-- Skipped lines -->
<script>
function LoadTopReviews() {
    document.getElementById("defaultOpen").click();
    }
</script>   

函数LoadTopReviews(){
document.getElementById(“defaultOpen”)。单击();
}

这篇文章帮助我了解该怎么做。

它到底有什么“不起作用”?有错误信息吗?这个脚本标记首先运行吗?脚本运行时DOM中是否存在该元素?页面加载期间没有错误消息。浏览器控制台内没有错误。只需不单击id为“defaultOpen”的按钮即可。我看不到该选项卡的预期内容。选项卡已关闭。如果我手动单击该选项卡,它将打开(它将变为活动状态),我将看到所需的内容。这里是我想看到的示例的截图:但我看到了:为了看到预期的内容,我必须点击按钮。我不能在这里重现这个问题。检查脚本标记是否实际运行。Cloudfare会延迟您的脚本。在
窗口加载中设置javascript
事件句柄此解决方案很可能会起作用,但实际上会关闭CloudFlare的一个基本功能。嗯,这是一个糟糕的功能,因为它会严重干扰前端代码,并在开发和生产环境之间造成不一致。虽然好处还不清楚,因为大多数网站提供的资产缓存时间很长。它只是在第一次加载时减少了一点时间。