但是,启用了 Javascript 的用户在加载页面然后立即点击添加到购物车也会被从页面中删除。
你什么时候开始你的脚本?如果您正在使用文档加载,它将在初始化之前等待所有图像下载,这确实会给用户一个点击购买的机会。
如果您在 DOM 准备就绪时触发 JS 增强,只需将 <script> 放在页面底部,或者使用框架提供的 DOMContentLoaded 样式事件,链接应该足够快地适应用户不太可能先点击按钮。
如果您真的非常想延迟在第一次被解析的元素和正在加载的文档之间的点击,您可以编写如下内容:
<script>
function methodcall(obj, name) {
return function() {
obj[name].call(obj);
};
}
</script>
...
<a href="nonjsversion" onclick="setTimeout(methodcall(this, 'click'), 500); return false;">Buy</a>
...
这样它就会在那里旋转轮询(并且在 IE 上,内存泄漏),直到链接的真正点击处理程序到位。虽然它非常难看,而且很脆弱,如果你的脚本由于某种原因中断(而且它是 JavaScript,所以很可能在某些时候,在某些浏览器上,它会中断),你的按钮就会中断。此问题适用于依赖稍后运行的 JavaScript 启用先前禁用的操作的所有潜在解决方案。
对于企业来说,没有什么比购买按钮坏了更糟糕的了。