JavaScript: получить исходную строку запроса при перезаписи URL - PullRequest
0 голосов
/ 22 июля 2010

URL моей страницы переписан так,

www.test-me.com / книга-кошка-white.HTML

  • book is book.php
  • кошка это животное = кошка
  • белый цвет = белый

Исходный URL-адрес

www.test-me.com / book.php? Животное = кошка и цвет = белый

С помощью PHP я могу получить значения, используя $_GET, например, $_GET['animal']. Как я могу сделать то же самое в JavaScript? Есть ли переменная, к которой я могу получить доступ, которая будет возвращать строку запроса?

Ответы [ 2 ]

1 голос
/ 22 июля 2010

Вы можете использовать window.location и его свойства, однако, это только указывает на http://WWW.test-me.com/book-cat-white.HTML - Перезаписанные параметры GET на стороне сервера не будут вам доступны.

Вы можетеtry:

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
0 голосов
/ 22 июля 2010

Вы можете запросить строку GET, , но только "public", переписанную, потому что это то, что видит браузер.

Если вам нужны внутренние, обработанные, не переписанные параметры, я бы рекомендовал записать их в head из PHP:

<script type="text/javascript">
query_animal = "<?php echo htmlspecialchars($_GET["animal"]); ?>";
query_color = "<?php echo htmlspecialchars($_GET["color"]); ?>";

</script>
...