将字符串从html页面传递给javascript

时间:2014-10-06 16:22:32

标签: javascript html argument-passing

我已经对如何将数据从网页传递到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
}

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

3 个答案:

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