Кодировка URL для document.location.href - PullRequest
2 голосов
/ 04 мая 2010

Я строю iFrame и использую document.location.href -> мой точный код:

<script type="text/javascript">
document.write("<iframe src='http://www.facebook.com/plugins/like.php?href=" + document.location.href + "&layout=standard&show_faces=false&action=like&font=verdana&colorscheme=light' frameborder=0></iframe>");
</script>

Это прекрасно работает для всех моих страниц, кроме одной. Я полагаю, что проблема с одной страницей вызвана чертой "-" в имени страницы. Мои вопросы - есть ли способ кодировать мой src по-другому, чтобы ссылка работала? ПРАВИЛЬНЫЙ URL, который я хочу получить:

[] / продукты / Продукт% 252dExample.html

Но что это влечет за собой:

[] / продукты / Продукт-example.html

И это приводит к неправильной работе страницы.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 04 мая 2010

функция encodeURIComponent будет делать то, что вы хотите.

<script type="text/javascript">
document.write("<iframe src='http://www.facebook.com/plugins/like.php?href=" + encodeURIComponent( document.location.href ) + "&layout=standard&show_faces=false&action=like&font=verdana&colorscheme=light' frameborder=0></iframe>");
</script>
2 голосов
/ 12 мая 2010

Facebook как кнопки дважды кодируют URI целевой страницы Таким образом, способ получить то, что вы ищете, это ...

encodeURIComponent (encodeURIComponent (document.location.href))

Ох уж эти дурацкие ребята из FB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...