2017-03-06 46 views
0

私はリモート呼び出しで1ページに2つ以上のウィジェットを持っています。例えば:私は、cidパラメータを取るcidパラメータを必要とするウィジェット内のいくつかのタスクを実行し、対応する<div>#cid_2#cid_3など)で結果を記述する必要が各widget.jsインサイド.jsファイルの中からクエリ文字列を取得します。

<script async src="https://example.com/widget.js?cid=2" type="text/javascript"></script> 
<div id="cid_2"></div> 

<script async src="https://example.com/widget.js?cid=3" type="text/javascript"></script> 
<div id="cid_3"></div> 

URL(.js?cid=)のcidの値をwidget.jsから取得するにはどうすればよいですか?

+2

の可能性のある重複した[GETパラメータから値を取得する方法?](http://stackoverflow.com/questions/979975/how-to-get-the-value-from-the-get-パラメータ) –

+0

重複はありません私の例は同じではありませんをお読みください。 – DaveIt

+0

たぶん私は何かを得ていないかもしれませんが、私の最初の印象は非常に否定的です。これは、同じウィジェットのために同じjavascriptファイルを何度か読み込んでいます。恐ろしい。 JSを一度ロードし、 'script'タグを追加して各ウィジェットの関数を呼び出します。 GoogleアナリティクスのコードをJSを非常に柔軟に埋め込むための巧妙な方法として提案することもできます:https://developers.google.com/analytics/devguides/collection/analyticsjs/ –

答えて

0

私はこれをスクリプトsrcから取得し、関数を使ってデコードする方法を発見しました。疑問符の後window.location.hrefから

//Function to get parameters from script src 
function getSRCparameter(sParam) { 
    var scripts = document.getElementsByTagName('script'); 
    var index = scripts.length - 1; 
    var myScript = scripts[index]; 
    // myScript now contains our script object 
    var queryString = myScript.src.replace(/^[^\?]+\??/,''); 

    var sPageURL = queryString, 
     sURLVariables = sPageURL.split('&'), 
     sParameterName, 
     i; 

    for (i = 0; i < sURLVariables.length; i++) { 
     sParameterName = sURLVariables[i].split('='); 

     if (sParameterName[0] === sParam) { 
      return sParameterName[1] === undefined ? true : sParameterName[1]; 
     } 
    } 
} 

//Example code 
$(document).ready(function(){ 

    //parameter in the src 
    var getValue = getSRCparameter("cid"); 

    //test results in console 
    console.log("my get value is: "+getValue); 

    //put the info inside the divs 
    $("#cid_"+getValue).html("ID Get is:"+getValue); 
}); 
+0

しかし、OPは 'の中からクエリ文字列を取得しようとしています。 jsファイル。 '

0

読む、"&"によって分割し、その一部"="前に、あなたの条件に一致するパラメータを見つける:これは一例です。

var parameters = window.location.href.split("?")[1].split["&"]; 
for (var index in parameters) { 
    var param = parameters[index].split("="); 
    if (param[0] === "cid") { 
     //Do something 
    } 
} 
関連する問題