1

我目前在问自己,何时执行页面标题中的 javascripts?

加载完所有内容后?在加载图像期间?在加载网站之前?

原因是,我想实施一个障碍,以防止用户在没有 javascript 的情况下访问网站(它是供公司内部使用的,不要责怪我的要求) - 我的想法是创建一个 div-error-message 用 javascript 隐藏并且我的页面的屏幕截图显示为灰色,如果禁用了 javascript,也会隐藏。

问题是,就文件大小而言,这样的屏幕截图可能非常大。那么,在连接速度较慢的情况下,您是否必须在 javascript 隐藏它之前加载整个图像?!

4

4 回答 4

4

为什么不把“你必须有 javascript”警告放在<noscript>标签内呢?

于 2009-11-30T09:44:08.213 回答
2

<script>HTML 页面中的标签在<head>加载时执行(除非它们具有defer属性集),也就是说,在加载图像甚至文档的其余部分之前。您可能想要做的是包含您希望隐藏在 a 中的图像<div id="something" style="display:none">并在页面及其所有内容(包括您的屏幕截图图像)已加载(即在onload处理程序中)后显示此 div ——或者显然您可以使用 addEventListener也)。

于 2009-11-30T09:47:54.860 回答
2

script每当浏览器看到标签中的 Javascript时,它就会执行。但是会停止所有其他执行和(可能)下载。因此,您试图在 中隐藏一个imgbody但由于script标签在head其中,它将在img加载之前执行,因此它将无法找到它(document.getElementById('#noScriptImage')将失败)。

另一种选择是将script标签放在之后img,但随后会发生变化,在几分之一秒内图像将可见并且屏幕将闪烁。

于 2009-11-30T09:48:56.300 回答
1

Javascript 将取决于您使用的事件;如果您谈论的是 onload 事件,那么它将在所有内容加载后运行。

为了解决您的问题,您可以创建一个页面,并在那里编写一些 javascript 将其重定向到 JavascriptEnabled.html;如果你不能重定向它,你还应该添加一个 META REFRESH 标记并将其重定向到 JavascriptDisabled.html 并显示警告消息。

于 2009-11-30T09:46:51.203 回答