2014-10-06 74 views
0

我已经做了大量的搜索如何将数据从网页传递到JavaScript,但我还没有找到传递字符串的解决方案。这正是我想要做的,只需将一个字符串传递给一个Java脚本函数。以下是我的代码:从HTML页面传递一个字符串到javascript

<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> 

我已经试过各种方法,试图得到这个工作,包括:去掉“”周围的男孩和女孩,利用按钮,而不是一个精灵,使用“”周围的男孩和女孩。于是就点击,我重定向到页面,我创建了一个名为性别来保存信息的全局变量,然后尝试在我的功能可按使用性别作为这样:

var gender // Creates the global gender variable 

init(gender){ 
    //code goes here 
} 

所以我没有得到我想要的结果在页面上,当我进入控制台并输入性别时;我收到性别未定义的消息。所以我的问题是,我在这里不理解什么,我做错了什么?

+2

你有意将变量传递回服务器吗?或者当用户点击''链接时,你是否想要发生什么? – mikeyq6 2014-10-06 16:24:48

+2

如果您确实想在页面重新加载后在JavaScript中阅读查询字符串参数,请查看[this question](http://stackoverflow.com/questions/901115/how-can-i-get-query- string-values-in-javascript) – 2014-10-06 16:25:40

+0

没有一个答案对你有帮助吗? http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript – 2014-10-06 16:27:16

回答

0

你可以对url进行正则表达式检查。 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]; 
} 
*/ 
0

为什么没有像调用一个标签,而不是HREF的“的onclick” JavaScript函数。如果需要的话,使用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; 
} 
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 
相关问题