【发布时间】:2019-03-08 04:23:14
【问题描述】:
我有一种情况,我想在我的 Wordpress 网站点击之间保留一个查询字符串。
例如 www.mywebsite.com/?utm_source=mysource
当从这个链接导航到网站的另一个页面时,查询字符串应该保持不变。
例如 www.mywebsite.com/anotherpage/?utm_source=mysource
所以我决定一种简单的方法是修改 javascript,以便在单击锚标记时触发我的函数。
//Ensures that the query string persists between clicks on the site
$("a").on("click", function (event) {
event.preventDefault();
window.location.href = event.currentTarget.href + window.location.search;
});
但是,这不适用于页面上的其他元素,例如不是锚标记但仍包含在单击它们时修改窗口位置的 href。例如在主题的php脚本中有这样的代码:
<button onClick="location.href=www.anotherwebsite.com"</button>
我可以实现另一个对按钮元素实现相同行为的函数,但我担心每当添加另一个元素时,我都必须检查新类型。有没有更好的方法来确保每当更改窗口位置时我的查询字符串仍然存在?
仅供参考:我不允许将信息放在 cookie 中,这是我想到的跟踪参数的另一种方式。
【问题讨论】:
-
以上内容并不能很好地解决我的问题,因为我必须添加 $referrer = $_SERVER['HTTP_REFERER'];如果我的网站中有很多页面可能涉及修改大量代码并编写大量重复代码
-
这只是 3 个答案之一。
-
为什么不使用会话?
-
我发现了一些较早的问题,建议尝试使用 beforeunload 处理程序拦截位置更改,但我不太确定它的可靠性如何。并且没有什么可以用来拦截任意导航事件的方法——只有在通过浏览器历史 UI 进行导航时才会触发历史更改,而对于正常的链接或按钮单击则不会。 // 似乎有点违反直觉,您不仅要跟踪我对您页面的首次访问,而且要在我进一步浏览该站点时继续嗅探我的 a** ......但是然后有不使用 cookie 的要求......?
标签: javascript php jquery wordpress