如果我有一个名为www.testsite.com的页面,并且我使用url中的查询字符串链接到该页面,是否可以以某种方式将相同的查询字符串附加到所有传出链接/流量?
例如,假设我链接到该页面,如www.testsite.com?parameter1=somevalue 然后,在该页面上,我点击一个链接到例如谷歌,我希望传递参数,所以网址将是www.google.com?parameter1=somevalue。
我知道如何手动执行此操作,但是有一些它可以自动附加到网址吗?就像在发生之前捕获传出请求并添加参数?
谢谢!
埃里克
答案 0 :(得分:3)
你可以使用jQuery
简单地使用javascript或javascript$("a").click(function(e){
e.preventDefault();
window.location = $(this).attr("href") + window.location.search;
});
应该让你开始
如果你想要一个非jQuery解决方案,你可以只使用javascript查看绑定事件
http://www.digimantra.com/tutorials/change-onclick-function-anchor-tag-javascript/
答案 1 :(得分:1)
您可以通过httpmodule实施拦截过滤器,该过滤器修改您发回给客户端的html。有关详细信息,请参阅:http://msdn.microsoft.com/en-us/library/ff649096.aspx
还有一些例子:
Http Response Filter
SO: Get HTML content for modification
答案 2 :(得分:0)
除非您有一个输出外向链接的中心位置,否则您必须手动执行此操作(可能视觉工作室搜索/替换可以在这里提供帮助,但我会小心,因为您最终可能会更改您没有输入的链接'我想)。
答案 3 :(得分:0)
您可以使用以下命令来使用Query String参数 您可以循环遍历所有查询字符串参数,例如
int loop1, loop2;
// Load NameValueCollection object.
NameValueCollection coll = Request.QueryString;
// Get names of all keys into a string array. String[] arr1 = coll.AllKeys;
string parameters = "";
for (loop1 = 0; loop1 < arr1.Length; loop1++)
{
parameters += Server.HtmlEncode(arr1[loop1]) + "=" + coll.GetValues(arr1[loop1]);
for (loop2 = 0; loop2 < arr2.Length; loop2++)
{
parameters += Server.HtmlEncode(arr2[loop2]);
}
}
它的基本理念。但是你可以在不知道名字的情况下循环参数。