Экранирование двойных кавычек в обработчиках событий HTML - PullRequest
1 голос
/ 16 декабря 2010

Как мне избежать двойных кавычек в обработчике событий в HTML?

Например, как правильно экранировать bar, являющийся строковым литералом, в следующем коде?

<button onclick="foo("bar")")>Click Me</button>

Я не могу использовать одинарные кавычки для значения атрибута, так как я использую XHTML. Я мог бы использовать одинарные кавычки для строковых литералов, но я хотел бы быть последовательным.

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

XHTML предпочитает двойные кавычки вокруг атрибутов.Но вы все равно можете использовать одинарные кавычки внутри значения.Например, XHTML 1.0 Strict

<button onclick="foo('bar')">Click Me</button>

Я бы предложил рассмотреть прогрессивное улучшение и отойти от поведенческих атрибутов.

1 голос
/ 16 декабря 2010
<button onclick="foo(&quot;bar&quot;);">Click Me</button>

И вы действительно можете смешивать их в XHTML, попробуйте это в W3 validator :

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>foo</title>
</head>
<body>
<div onclick='bar("foo");'></div>
</body>
</html>

Существуют некоторые учебные пособия, в которых говорится, что одинарные кавычки недействительны, но они неверны.

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