2012-04-23 117 views
0

我有一個JavaScript,坐在我的服務器上。我想爲訪問者提供JavaScript代碼,以便Google Analytics(分析)可以將它們放在服務器上。例如:跨站點腳本

<script type="text/javascript" src="http://www.somedomain.com/script/script.js?id=2001102"></script> 

我得到了一切工作,直到我需要搶ID。我只是不知道該用什麼。

我都嘗試location.href和location.search,但給我的網址+ param其中,腳本被包埋,而不是「的script.js?ID = XSOMEIDX」

在的script.js文件的我具備以下條件:?

function requestContent() { 
var script = document.createElement("script"); 
script.src = "http://www.somedomain.com/script/xss_script.php?id="I WANT TO INPUT ID HERE+"&url="+location.href; 
document.getElementsByTagName("head")[0].appendChild(script); 

}

任何我怎麼能採取ID = XSOMEIDX並把它放在xss_script.php ID =?

在此先感謝!

+0

我不會」 t調用腳本'xss_script.php',大多數人會認爲這是你在那裏嘗試的破解。 – Dunhamzzz 2012-04-23 19:22:59

+0

你可以讓你的'script.js'成爲一個php頁面嗎? – mellamokb 2012-04-23 19:23:16

+0

@Dunhamzzz是的,我知道,那只是爲了說明的目的。 – Hugo 2012-04-23 19:24:04

回答

0

如何設置具有特定屬性的外部腳本標記?

<script data-my-script="my_value" type="text/javascript" src="http://www.somedomain.com/script/script.js?id=2001102"></script> 
在現代瀏覽器

那麼你可以做

var scripts = document.querySelectorAll("script[src][data-my-script]"); 
$.each(scripts, function(i, script) { console.log(script.src); }); 

和遍歷節點列表...

注:querySelectorAll工作不跨瀏覽器 注:querySelectorAll是返回一個數組-like object

1

您可以使用URL重寫獲取id = XSOMEIDX並將其放入xss_script.php?id =

國防部重寫規則,這樣做是這樣的:

RewriteRule ^/scripts/([a-zA-Z0-0]+)/script.js$ /scripts/script.php?id=$1 

這種方式,你可以簡單地要求市民包括yoursite.com/scripts/{id}/scripts.js

+0

我認爲這很簡單,適用於我。 – Hugo 2012-04-23 20:30:03

+0

快速跟進。我希望它能像這樣工作: RewriteEngine On RewriteRule^xss/script.js?id =([a-zA-Z0-0] +)$ xss/script.php?id = $ 1 [L] 但那不起作用......但是,當我嘗試它時,它的確如此......如果可能的話,我寧願使用.js?id =語法。 – Hugo 2012-04-23 20:49:33