我正在为客户更新 wordpress 网站。我不得不打开服务器端缓存,因为由于插件太多,网站速度很慢。我对此无能为力,也无法禁用插件。
其中一个插件要求用户输入电子邮件以下载文件。如果插件看到有效的电子邮件,它会设置一个会话变量。然后页面重新加载。如果设置了该会话变量,则站点将显示一个下载按钮,而不是输入电子邮件表单字段和按钮。
由于启用了服务器端缓存,因此此功能将丢失。所以,我想做的是设置一个 cookie,然后检查 cookie 客户端,并交换 div 的内容( id="download" )。我对 Javascript 做的不多,并且无法使其正常工作。
我在 PHP 中设置了这样的 cookie:
setcookie( 'show_download', 1 );
我已经像这样设置了 div 的新内容(动态生成):
setcookie( 'new_content', '<div class="btn-ss-downloads"><a target="_blank" href="/wp-content/plugins/ss-downloads/services/getfile.php?file=4v-zR6fc6f/9vaROBr/dTJd/Tg/D 0-dT.vBx">Download Series 20 Datasheet</a></div>' );
我有一个函数可以读取我从另一篇文章中获得的 Javascript 中的 cookie:
<script type="text/javascript">
function readCookie(name) {
var ca = document.cookie.split(';');
var nameEQ = name + "=";
for(var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1, c.length); //delete spaces
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return "";
}
</script>
似乎正确的功能是调用readCookie( 'show_download' );
. 如果 value = 1,则将 的内容与cookie<div id="download"></div>
中存储的内容交换。new_content
鉴于我在这里介绍的作品,我如何在 Javascript 中完成这项工作?我想在我的 Wordpress 标题中添加一个 javascript 函数,如果它可以在这里工作的话。似乎我可以在页面呈现/加载后运行这个函数。我对浏览器和 javascript 的操作顺序不是很熟悉。请帮忙。