我的网页的网址被重写,
www.test-me.com/book-cat-white.HTML
原始网址为
www.test-me.com/book.php?animal=cat&color=white
使用PHP,我可以使用$_GET
获取值,例如$_GET['animal']
。我怎样才能在JavaScript中做同样的事情?是否有我可以访问的变量将返回查询字符串?
答案 0 :(得分:1)
您可以使用window.location
及其属性,但这仅指向http://WWW.test-me.com/book-cat-white.HTML
- 服务器端重写的GET参数将无法使用。
你可以尝试:
var match = window.location.pathname.match(/\/book-([^-]+)-([^-]+).html$/i);
// for your example - match contains: ["/book-cat-white.HTML", "cat", "white"]
对正则表达式的进一步解释:
/ # Start Expression
\/book- # Match '/book-'
( # Start Capture Group 1
[^-]+ # Match any character other than '-' 1 or more times
) # End Capture Group 1
- # Match '-'
( # Start Capture Group 2
[^-]+ # Match any character other than '-' 1 or more times
) # End Capture Group 2
.html # Match '.html'
$ # Match the end of the string
/i # End Expression - Case insensitive flag
答案 1 :(得分:0)
您可以query the GET string,但只能重写“公开”,因为这是浏览器看到的内容。
如果您需要内部的,已处理的,未重写的参数,我建议您在PHP中的head
中编写它们:
<script type="text/javascript">
query_animal = "<?php echo htmlspecialchars($_GET["animal"]); ?>";
query_color = "<?php echo htmlspecialchars($_GET["color"]); ?>";
</script>