我已经对如何将数据从网页传递到javascript进行了大量搜索,但我还没有找到传递字符串的解决方案。这正是我想要做的,只需将一个字符串传递给java脚本函数。以下是我的代码:
<a href = "website.html?gender='boy'">
<IMG STYLE="position:absolute; TOP:250px; LEFT:100px; WIDTH:300px; HEIGHT:300px" SRC="images/boy0023.png"/>
</a>
<a href = "website.html?gender='girl'">
<IMG STYLE="position:absolute; TOP:250px; LEFT:600px; WIDTH:300px; HEIGHT:300px" SRC="images/girl0023.png"/>
</a>
我已经尝试了各种方法来尝试使其工作,包括:使用按钮而不是精灵来移除“男孩和女孩”,使用“”围绕男孩和女孩。所以点击后,我被重定向到页面,我创建一个名为gender的全局变量来保存信息,然后尝试在我的函数中使用性别:
var gender // Creates the global gender variable
init(gender){
//code goes here
}
所以我没有在页面上得到我想要的结果,当我进入控制台并输入性别时;我收到的信息是性别未定义。所以我的问题是,我在这里不理解什么,我做错了什么?
答案 0 :(得分:0)
您可以对网址进行正则表达式检查。 FIDDLE
// use window.location.href instead of string (the link)
var link = "website.html?gender=girl";
var gender;
if (link.indexOf("gender") != -1) {
gender = link.match(/.*gender=(.*)/)[1];
}
/*
var gender;
if (window.location.href.indexOf("gender") != -1) {
gender = window.location.href.match(/.*gender=(.*)/)[1];
}
*/
答案 1 :(得分:0)
为什么不在on&#39; onclick&#39;上调用javascript函数呢?标签而不是href。并根据需要使用window.location更改页面。请参阅小提琴: - http://jsfiddle.net/Lpx7epf2/5/
代码如下: - (HTML)
<a href="#" onclick="gender('boy')">
<IMG STYLE="position:absolute; TOP:250px; LEFT:100px; WIDTH:300px; HEIGHT:300px" SRC="images/boy0023.png"/></a>
<a href="#" onclick="gender('girl')">
<IMG STYLE="position:absolute; TOP:250px; LEFT:600px; WIDTH:300px; HEIGHT:300px" SRC="images/girl0023.png"/></a>
(JavaScript的)
function gender(str){
alert(str);//Use the value any way you want
window.location="website.html?gender="+str;
}
答案 2 :(得分:0)
以下解决了这个问题:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var gender = getParameterByName('gender'); // Used as global variable
function init(gender) {
gender = getParameterByName('gender'); //For some reason only works when it is reiterated localy