испускать амперсанд на HTML-страницу в JavaScript - PullRequest
1 голос
/ 14 октября 2010

Я хочу испустить '&' без '&' на странице

document.write ('&');

испускает &

document.write ('\ &');

испускает &

Доказательство в сгенерированном html

<html xmlns="http://www.w3.org/1999/xhtml"><head>


    <title></title>
</head><body>
<script type="text/javascript">

    document.write('&');
    document.write('\&');

</script><div firebugversion="1.5.4" style="display: none;" id="_firebugConsole"></div>&amp;&amp;
</body></html>

Ответы [ 2 ]

2 голосов
/ 14 октября 2010

wcpro: "я пытаюсь создать URL на странице? This = 1 & that = 2, вы говорите мне, что это невозможно?"

Ну, технически, амперсанд должен быть закодирован как & amp; в вашем html-коде:

<a href="somewhere?this=1&amp;that=2>something</a>

Когда ваш браузер читает страницу, он декодирует & amp; на & и это то, что вы получаете, когда нажимаете на ссылку.

А как же тогда один амперсанд?

<a href="somewhere?this=1&that=2>something</a>

Это неправильно, а не юридически HTML. Это работает, потому что эта ошибка была настолько распространена, что браузеры исправили ее для вас. Точно так же, как они пытаются исправить другие вещи, такие как отсутствующие теги и все другие плохие вещи с помощью тегового супа.

W3c предлагает использовать точку с запятой вместо амперсанда, чтобы избавиться от этой проблемы.

Если вы когда-нибудь попробуете XHTML, вы будете уведомлены о каждой отдельной ошибке.

2 голосов
/ 14 октября 2010

Не может быть сделано.Оставьте это на своей странице:

<span id="and">&</span>

и позвоните alert(document.getElementById("and").innerHTML)

. Вы увидите, и ваш браузер автоматически конвертирует & в &, когда это не является допустимой escape-последовательностью.

...