[英]Get URL parameters with Javascript
嗨,我的HTML中包含以下標簽:
<script type="text/javascript" src="http://XX/teste1.php?BLABLABLA"></script>
teste1.php內部是否有某些東西,使用JS檢索參數BLABLABLA? 如果我使用window.location.href,則可以獲取index.php位置(當然),但是我需要使用JS(而不是PHP)將參數發送到外部資源。
我想我明白你的追求。 看看下面的小提琴。
您可以看到我正在手動加載jQuery,然后從腳本聲明中獲取src
。
===================
HTML為您的腳本聲明添加id
<script id="jquerysrc" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js?key=test"></script>
使用Javascript
$(document).ready(function() {
var scriptsource = "";
scriptsource = $("#jquerysrc").attr("src");
alert(scriptsource);
});
這將使您看到外部js文件來自的URL。 這更是正確方向上的一點。
您可以嘗試此操作,而無需使用jQuery。
var scripts = document.getElementsByTagName('script'),i,src;
for(i=0;i<scripts.length;i++){
src = scripts[i].src;
if (src && src.indexOf('?')>=0){
console.log(src.substring(src.indexOf('?')+1));
}
}
似乎您不了解PHP和JS如何協同工作。 PHP生成HTML(也可能是JS和CSS)。 然后,當客戶端加載此html時,將執行JS。
要在PHP或JS中獲得它,可以使用正則表達式或將URL從?BLABLABLA
修改為?key=BLABLABLA
。 在PHP中,“ BLABLABLA”將存儲在$ _GET ['key']中
編輯:
好吧,我誤解了你的問題。
從“ 如何從javascript檢索GET參數? ”:
與window.location
對象。 此代碼為您提供了沒有問號的GET。
window.location.search.replace( "?", "" );
從您的示例中,它將返回BLABLABLA
編輯2:
在teste.php中生成Javascript時,應執行以下操作:
$str = "";
foreach ($_GET as $key => $value) {
$str = $key;
}
echo "var getParam = ".$str.";";
如果您不知道給出什么,我看不出如何避免foreach。 您可能需要重新構建參數字符串(“?xxx = sss&ddd = zz ...”)
現在,您的JS變量getParam應該包含BLABLABLA
阿波羅
當前,JavaScript沒有用於此目的的任何內置函數。 您所說的BLABLABLA被稱為Query String 。 將其攻擊到URL即可創建動態網頁(根據情況更改內容)
是獲取整個URL,然后將URL替換為空字符串,依此類推,僅獲取最后一個元素。
另一個答案與功能(自定義功能,而不是內置功能)一起發布。 在其中將參數傳遞給方法,該方法為您獲取參數值。 這也很容易理解。
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
要調用該函數,請使用getParameterByName('prodId')
。 在函數或變量中使用它就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.