在网页www.foo.com上,用户点击反馈超链接以提交有关某事的反馈。它会打开一个新页面,其中包含要填写的文本字段。我想要做的是获取原始页面www.foo.com的URL,例如,出现在新页面的只读字段中。
这是我目前在反馈页面上的测试代码。
<input id="URL" type="text" name="pageURL" readonly>
<script type="text/javascript">
document.getElementById('URL').value = document.location.href;
</script>
这会显示反馈页面的网页,页面Y,这就是我所期望的。
但是我在如何获取第X页的网址(在此示例中为www.foo.com)以显示在readonly中时,我只是空白。
我认为我必须在原始页面的代码中执行某些操作并将其结转。我确实有CORS功能用于其他目的,但我正在使用的信息被带到一个php文件而不是表单页面操作的.htm文件。我仍然是CORS的初学者,但我不认为像URL那样需要它。或者这可能很简单。
答案 0 :(得分:0)
一种方法是在链接到第二页时将第一页的网址包含在查询变量中。
要执行此操作,请将encodeURIComponent(str)
添加到网址的末尾,其中FIRSTPAGEURL是使用<a href="http://example.com?firstpage=http%3A%2F%2Ffoo.com">Go to second page</a>
的第一页的编码网址,以使其成为有效的网址。
var url = getQueryVariable('firstpage'); // Get the encoded url
url = decodeURIComponent(url); // Decode the url
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) { return pair[1]; }
}
return false;
}
然后,在第二页上,您可以从查询字符串中获取第一页的网址:
[STAThread]
static void Main()
{
if (new FormLogin().ShowDialog() == DialogResult.OK)
{
Application.Run(new FormMain());
}
}
<强>参考强>
https://css-tricks.com/snippets/javascript/get-url-variables/