URL可以告诉jQuery运行一个函数吗?

时间:2011-07-18 16:38:16

标签: jquery jquery-selectors

有关于URL和jQuery的问题。

我可以指定URL来告诉jQuery运行一个函数吗?

例如http://www.website.com/about.html?XYZ

运行函数XYZ();

4 个答案:

答案 0 :(得分:8)

您可以在该网页中放入代码来检查网址上的查询参数,然后根据找到的内容调用您想要的任何javascript函数。

在您的特定示例中,简化版本将如下所示:

// code that runs when page is loaded:
if (window.location.search == "?XYZ") {
    XYZ();
}

或者如果你想让它运行那里存在的任何函数,你可以从字符串中提取它并运行那里的任何名称。

// code that runs when page is loaded:
if (window.location.search.length > 1) {
    var f = window.location.search.substr(1);  // strip off leading ?
    try {
        eval(f + "()");  // be careful here, this allows injection of javascript into your page
    } catch(e) {/* handler errors here */}
}

允许在您的网页中运行任意javascript可能会或可能不会产生不良安全隐患。如果可能的话,最好只支持一组特定的预先存在的函数,这些函数是您查找并知道的,而不是像第二个例子那样执行任意的javascript。

答案 1 :(得分:2)

在网址栏中,您始终可以放置javascript:XYZ();

在此网址加载后尝试:http://jsfiddle.net/maniator/mmAxY/show/

答案 2 :(得分:0)

我相信:

if(location.href == ""){
    xyz();
else{

}

答案 3 :(得分:0)

您可以使用window对象调用全局声明的函数:

function bar(str) {
    alert("hello" + str);   
}

// assuming location is "http://example.com?bar"
var fn = window.location.search.replace("?", "");
window[fn](" Dovhakiin"); // 'hello Dovhakiin'