我正在尝试获取引荐来源并更新引荐来源,以便我的用户可以返回到他们回来的页面。我有一个隐藏的输入字段,它保存重定向的值。我有一个静态值,以防引用者为空。如果引用者不为空,我想更新它的值。这是我写的代码,我甚至测试了它,它说它已经更新了,但是,我没有被正确地重定向,所以它不起作用。
我写过的JavaScript和HTML(请记住,我已正确链接文件等):
$(document).ready(function(){
if (document.referrer != "") {
document.getElementsByName("redirect").value = document.referrer;
var test = "false";
if (document.getElementsByName("redirect").value == document.referrer){
test = "true";
}
alert(test);
}
});
<script src="js/referrer.js"></script>
<input type="hidden" name="redirect" value="https://www.google.com" />
我觉得这是一个小错误,或者我可能不会遵循某种标准。
感谢您的帮助!我很感激任何见解!
答案 0 :(得分:0)
我看不出你给我的东西是什么问题。但我可以说的是,如果你要在一个地方使用JQuery(文档就绪函数),那么你也应该使用它来获取输入字段的值。
如果您在输入字段上放置Id而不是按名称进行操作,这也会有所帮助。 ID是获取特定元素的最佳方式。这也可能是你的问题。
然后使用:
调用它$("#ID").val()
所以你的代码会变成:
if($("#ID").val() === document.referrer)
我也建议使用三等号。但这完全取决于你。
我从未对document.referrer做过任何事情,但也可能有更好的方法。
答案 1 :(得分:0)
有一件奇怪的事情是你将这两件事彼此相等
document.getElementsByName("redirect").value = document.referrer;
然后立即测试它们是否彼此相等。
if (document.getElementsByName("redirect").value == document.referrer)
我不能说这是你的问题,但编码很糟糕,应该修复。
答案 2 :(得分:0)
我认为一封信就是在这里绊倒你。
if (document.getElement**s**ByName("redirect").value == document.referrer){
'byName'没有单数等价物,所以你最终得到一个数组(或者至少是一个类似数组的对象)。与ID不同,允许多个输入具有相同的名称。最简单的解决方案是:
if (document.getElementsByName("redirect")[0].value == document.referrer){
答案 3 :(得分:0)
执行document.getElementsByName将返回一个不包含该值的对象数组。使用getElementsByName时无法更改值(我知道并尝试过)。我已经通过使用getElementById解决了这个问题,它实际上适合我。