0

私はGoogle en SOでこれを検索してきました.URLからクエリパラメータを取得したい関数を取得しました(記事へのリンク)。
しかし、私は自分の質問に対する答えを見つけることができません.私はそれがかなり簡単に修正できるはずであるということについてかなり前向きです.私は尋ねるのが愚かだとさえ感じます.

リンクをクリックしてjqueryでそのクリックをキャッチすると、関数はfalseを返します(更新は必要ありません)ため、必要なパラメーターがURLに解析されません。これらを入手するにはどうすればよいですか?

CURRENT URL: index.php?page=search&action=searchAll
<h4 class="videoLink"><a href="index.php?page=search&amp;action=playVideo&amp;isAjax=true&amp;v={$result.link}" class="{$result.link}">{$result.title}</a></h4>

jQuery の簡素化

$('.videoLink').click(playVideo);  

function playVideo(){
   url = getUrlVars();
   return false;
}

function getUrlVars(){
   var vars = [], hash;
   var hashes = window.location.href.slice(window.location.href.indexOf('?')+1).split('&');

   for(var i = 0; i < hashes.length; i++){
       hash = hashes[i].split('=');
       vars.push(hash[0]);
       vars[hash[0]] = hash[1];
   }
return vars;
}

したがって、URLをトレースすると、パラメーターのみが取得されます:ページとアクション

4

1 に答える 1

0

戻る前にfalse、リンクを取得してパラメーターを抽出できます。

$('a').click(function(e){

    var href = this.href;
    var params = {};
    // remove the part of the href up to the first ? character
    // and then split the remaining at the & character
    // loop the resulting list of somekey=somevalue
    // and split at the = and store in the params variable
    $.each(href.replace(/^.*?\?/gi,'').split('&'), function(i,val){
        var parts = val.split('=');
        params[parts[0]] = decodeURIComponent(parts[1]);
    });

    // do what you want with the params here

    return false;
});

アップデート

コードをブラウザーの場所とそれに渡されたカスタム URL で動作させたい場合は、次のように変更できます。

function getUrlVars(href){
   var vars = [], 
       hash,
       url = href || window.location.href;

   var hashes = url.slice(url.indexOf('?')+1).split('&');

   for(var i = 0; i < hashes.length; i++){
       hash = hashes[i].split('=');
       vars.push(hash[0]);
       vars[hash[0]] = hash[1];
   }
return vars;
}

そしてそれをこのように呼びます

function playVideo(){
   url = getUrlVars(this.href);
   return false;
}
于 2012-10-26T18:30:01.587 に答える