Javascript 在.js文件中调用URL参数
我正在调用HTML文件中的.js文件。在.js文件的URL上,我想包含一个参数,该参数可供.js文件中的代码访问 例如: 我希望能够在jquery的帮助下,将ID值传递给jquery_widget.js文件中的函数。这是怎么做到的Javascript 在.js文件中调用URL参数,javascript,jquery,parameters,Javascript,Jquery,Parameters,我正在调用HTML文件中的.js文件。在.js文件的URL上,我想包含一个参数,该参数可供.js文件中的代码访问 例如: 我希望能够在jquery的帮助下,将ID值传递给jquery_widget.js文件中的函数。这是怎么做到的 感谢所有的帮助 您可以使用类似php的东西 your html file: <script type="text/javascript" src="yourFile.php?var=123"> yourFile.php: // <?php
感谢所有的帮助 您可以使用类似php的东西
your html file:
<script type="text/javascript" src="yourFile.php?var=123">
yourFile.php:
// <?php echo($_GET["var"]); ?>
您的html文件:
yourFile.php:
//
或者,您可以定义一个全局变量,并让javascript访问该变量。您不能这样做:您必须在加载脚本之前声明该变量。 例如:
var foo=“bar”;
这样,变量就可以用于脚本了
另一个解决方案是使用php脚本,然后可以使用GET变量。
在这种情况下,请确保通过header()调用告知您正在输出javascript
<script type="text/javascript" src="ip.php"></script>
和ip.php
<?
//"ip.php" example- display user IP address on any page
Header("content-type: application/x-javascript");
$serverIP=$_SERVER['REMOTE_ADDR'];
echo "document.write(\"Your IP address is: <b>" . $serverIP . "</b>\")";
?>
以不同的方式处理问题:
来源:HTML和javascript文件是静态资源,只能由客户端浏览器解释,因此您不能将任何查询参数传递给这些值并在内部读取它们,您可以做的是在服务器端使用参数动态生成javascript文件,然后将其作为页面的一部分。或者其他简单的方法是将js文件编写为php或jsp文件,并将页面的内容类型设置为
text/javascript
,您可以访问其中的所有参数如果您试图从url读取参数,我使用了:
function PageQuery(q) {
if (q.length > 1) this.q = q.substring(1, q.length);
else this.q = null;
this.keyValuePairs = new Array();
if (q) {
for (var i = 0; i < this.q.split("&").length; i++) {
this.keyValuePairs[i] = this.q.split("&")[i];
}
}
this.getKeyValuePairs = function() { return this.keyValuePairs; }
this.getValue = function(s) {
for (var j = 0; j < this.keyValuePairs.length; j++) {
if (this.keyValuePairs[j].split("=")[0] == s)
return this.keyValuePairs[j].split("=")[1];
}
return false;
}
this.getParameters = function() {
var a = new Array(this.getLength());
for (var j = 0; j < this.keyValuePairs.length; j++) {
a[j] = this.keyValuePairs[j].split("=")[0];
}
return a;
}
this.getLength = function() { return this.keyValuePairs.length; }
}
function queryString(key) {
var page = new PageQuery(window.location.search);
return unescape(page.getValue(key));
}
function displayItem(key) {
if (queryString(key) == 'false') {
document.write("you didn't enter a ?name=value querystring item.");
} else {
document.write(queryString(key));
}
}
函数页面查询(q){
如果(q.length>1)此.q=q.substring(1,q.length);
否则。q=null;
this.keyValuePairs=新数组();
if(q){
对于(var i=0;i
javascript文件本身并不知道加载它的URL
您可以做的是为HTML页面中包含的script
标记分配一个ID,然后通过jQuery获取SRC属性。通过解析URL值,可以提取参数
<script id='widgetJs' src='...'></script>
var url = $("#widgetJs").attr("src");
var q = url.split("?")[1];
if (q) {
var params = q.split("&");
etc. etc...
i'm not even going to explain further because there are better solutions.
}
var url=$(“#widgetJs”).attr(“src”);
var q=url.split(“?”[1];
if(q){
var参数=q.split(&);
等等等等。。。
我甚至不打算进一步解释,因为有更好的解决方案。
}
一个更简单的解决方案是在一个单独的脚本
标记中声明一个全局变量(命名它以避免冲突),然后直接在脚本中使用它
或者更好的是,在脚本中有一个从HTML文件调用的
初始化(param)
函数(这样可以避免不必要的变量污染全局上下文) cshtml文件
<script src="@Url.Content("~/_scripts/CustomScripts/Coverage.js")" type="text/javascript"></script>
@using (Html.BeginForm("Create", "Coverage")) {
}
<script type="text/javascript"> getTypeIDByCategoryIdUrl = '@Url.Action("GetTypeIDByCategoryId")'; </script>
那是行不通的。。他正在请求
.js
包含的url参数。。而不是html页面。。
<script id='widgetJs' src='...'></script>
var url = $("#widgetJs").attr("src");
var q = url.split("?")[1];
if (q) {
var params = q.split("&");
etc. etc...
i'm not even going to explain further because there are better solutions.
}
<script src="@Url.Content("~/_scripts/CustomScripts/Coverage.js")" type="text/javascript"></script>
@using (Html.BeginForm("Create", "Coverage")) {
}
<script type="text/javascript"> getTypeIDByCategoryIdUrl = '@Url.Action("GetTypeIDByCategoryId")'; </script>
var getTypeIDByCategoryIdUrl = ""; $(function () {
$('#SeletedParrentIDTypeCode').change(function () {
alert(getTypeIDByCategoryIdUrl); }