2013-01-16 55 views
2

可能重複:
JavaScript query stringJavaScript - 如何從腳本內容中檢索src =「」url?

我想訪問連接到我的腳本URL查詢變量。因此,例如:

<script type="text/javascript" src="http://mysite.com/app.js?var1=value1&var2=value2"></script> 

在app.js,我怎麼訪問VAR1和VAR2值?

+0

我不認爲這是一個確切的副本。提供的可能的副本只是詢問如何操作JavaScript中的查詢字符串 - 此問題特定於腳本標記。 – mcknz

回答

2

This page describes a method用於獲得這些值:

<script type="text/javascript" 
     src="scriptaculous.js?load=effects,builder"></script> 

和JavaScript:

function getJSvars(script_name, var_name, if_empty) { 
    var script_elements = document.getElementsByTagName(‘script’); 

    if(if_empty == null) { 
     var if_empty = 」; 
    } 

    for (a = 0; a < script_elements.length; a++) { 
     var source_string = script_elements[a].src; 
      if(source_string.indexOf(script_name)>=0) { 

      var_name = var_name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
      var regex_string = new RegExp("[\\?&]"+var_name+"=([^&#]*)"); 
      var parsed_vars = regex_string.exec(source_string); 
      if(parsed_vars == null) { return if_empty; } 
      else { return parsed_vars[1]; } 

      } 
     } 
    } 
+0

挑選此答案,因爲它是一個自包含的功能,很容易下降:) – Joe

0

解析src屬性,大致如下:

var src=document.getELementById("script-id").getAttribute("src"); 
var query=src.substring(src.indexOf("?")); 
var query_vals=query.split("&"); 
var queries={}; 
for (var i=0;i<query_vals.length;i++) { 
    var name_val=query_vals.split("="); 
    queries[name_val[0]]=name_val[1]; 
} 
console.log(queries.var1, queries.var2); 

但是,有庫如作爲url.js這是一個更好的選擇,這樣做,更強大的網址編碼等。

相關問題