通过单击图像将变量传递给URL - JavaScript

时间:2017-02-21 22:52:40

标签: javascript

当点击图片时,也会通过登录表单链接到登录页面,我想传递我的用户名。单击图像将用户重定向到登录页面,在用户名字段中自动放置通过URL传递的用户名,这样用户只需编写密码并点击按钮即可登录。

我想的可能是这样的:

<script language="javascript" type="text/javascript">
var scrt_var = {{contact.username}} 
</script>

<a href="https://{{contact.image_bank_url}}" onclick="location.href=this.href+'?key='+scrt_var;return false;"><img src="http://image.png"></a>

这是登录表单中的用户名字段:

<input id="id_username" name="username" type="text">

还有其他办法吗?

2 个答案:

答案 0 :(得分:1)

您可以将用户名设置为参数:例如?username={{contact.username}}

<a href="https://{{contact.image_bank_url}}" onclick="location.href=this.href+'?username='+scrt_var;return false;">

  <img src="http://image.png">

</a>

然后在登录页面上阅读(功能取自 How can I get query string values in JavaScript?

document.getElementById("id_username").value = getParameterByName("username")

function getParameterByName(name) {
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(window.location.href);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

答案 1 :(得分:0)

我会亲自使用哈希。请参阅此问题以了解如何阅读哈希:

How can you check for a #hash in a URL using JavaScript?

您不必使用正则表达式。您不必进行任何复杂的链接。只需在登录页面的链接中添加#符号即可。 #填写您要用于填充字段的用户名。然后使用jQuery将哈希拉出并放入输入字段。

var username = window.location.hash;
$usernameInput.val(username);

编辑以获取进一步说明。

假设我在网站http://thisismysite.com#thisismyhash

在javascript中,如果我输入

console.log(window.location.hash);

我的控制台将会读取

"thisismyhash"

我建议您使用此功能来携带您的用户名,从第1页开始,用户点击链接进入登录页面,再到第2页。到达第2页后,从has中提取用户名并将其放入在您的输入字段中。