 |
[Вопрос] jquery, obj.html() или obj.innerHTML |

22.04.2008, 18:41
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
С нами:
10191686
Репутация:
210
|
|
[Вопрос] jquery, obj.html() или obj.innerHTML
Вот заметил такое вот свойство у jquery
Пример надуманный, но хорошо демонстрирует проблему:
Вообщем много обычного HTML кода
PHP код:
$new =<<<CONTENT
<div id="content" style="float:left; width:100%;">
<h1>Members: </h1>
<table class="TableMain" cellpadding="0" cellspacing="0"/>
<thead>
<tr align="center">
<th width="125" id="header">id</td>
<th width="300" id="header">EMAIL</td>
<th width="*" id="header"> </td>
<th width="55" id="header">EDIT</td>
<th width="55" id="header">DELETE</td>
</tr>
</thead> <tr align="center">
<td><a href="/inside/member/edit/39/">39</a></td>
<td><a href="/inside/member/edit/39/">ntest@test.new</a></td>
<td><a href="/inside/gallery/39/" style="text-decoration:underline;">Edit gallery</a></td>
<td><a href="/inside/member/edit/39/"><img src="/_admin/templates/images/b_edit.png" border="0" width="16" height="16"></a></td>
<td><a href="javascript: onDelete(39);"><img src="/_admin/templates/images/b_drop.png" border="0" width="16" height="16"></a></td>
</tr> <tr align="center">
<td><a href="/inside/member/edit/47/">47</a></td>
<td><a href="/inside/member/edit/47/">test@test.ua</a></td>
<td><a href="/inside/gallery/47/" style="text-decoration:underline;">Edit gallery</a></td>
<td><a href="/inside/member/edit/47/"><img src="/_admin/templates/images/b_edit.png" border="0" width="16" height="16"></a></td>
<td><a href="javascript: onDelete(47);"><img src="/_admin/templates/images/b_drop.png" border="0" width="16" height="16"></a></td>
</tr> <tr align="center">
<td><a href="/inside/member/edit/48/">48</a></td>
<td><a href="/inside/member/edit/48/">test@test.test</a></td>
<td><a href="/inside/gallery/48/" style="text-decoration:underline;">Edit gallery</a></td>
<td><a href="/inside/member/edit/48/"><img src="/_admin/templates/images/b_edit.png" border="0" width="16" height="16"></a></td>
<td><a href="javascript: onDelete(48);"><img src="/_admin/templates/images/b_drop.png" border="0" width="16" height="16"></a></td>
</tr> <tr align="center">
<td><a href="/inside/member/edit/55/">55</a></td>
<td><a href="/inside/member/edit/55/">vff@effe.efe</a></td>
<td><a href="/inside/gallery/55/" style="text-decoration:underline;">Edit gallery</a></td>
<td><a href="/inside/member/edit/55/"><img src="/_admin/templates/images/b_edit.png" border="0" width="16" height="16"></a></td>
<td><a href="javascript: onDelete(55);"><img src="/_admin/templates/images/b_drop.png" border="0" width="16" height="16"></a></td>
</tr> <!--<tfoot>
<tr>
<td colspan="5"><input type=button value="Add member" class=inpButton onclick="window.location = '/inside/member/add/';"></td>
</tr>
</tfoot>-->
</table><input type=button value="Add member" class=inpButton onclick="window.location = '/inside/member/add/';">
</div>
CONTENT;
// Убираем переносы
$new = ereg_replace("\r\n", "", $new);
// Экранируем двойные кавычки
$new = ereg_replace("\"", "\\\"", $new);
Убираем переносы и Экранируем двойные кавычки
Это для того, что бы, код был в одну строку, иначе не сработает obj.innerHTML = [только строка, без переходов на новую]
Идем дальше:
PHP код:
<body>
<div id="content"></div>
<script>
// $("#content").html("<?=$new?>"); НЕ РАБОТАЕТ
var obj = document.getElementById("content");
obj.innerHTML = "<?=$new?>"; // РАБОТАЕТ!!!
</script>
</body>
Вопрос:
Какие еще теги нужно заменять, что сработал и вариант с jquery, (пробывал - "\n", "\t", "'")
Если вообще заработает
ps возможно это символ - "@"
Последний раз редактировалось Naydav; 22.04.2008 в 19:07..
|
|
|

22.04.2008, 19:48
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
С нами:
9840758
Репутация:
808
|
|
Нужно смотреть на код, который получается в итоге, т.е. после того, как отработает php и получится страница.
P.S. может, не работает потому, что закомментировано? %)
|
|
|

22.04.2008, 20:41
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,315
С нами:
10248806
Репутация:
2371
|
|
.append ?
|
|
|

22.04.2008, 21:04
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
С нами:
10191686
Репутация:
210
|
|
.append - Не сработает, так же как и
var content = "test
test";
obj.innerHTML = content;
так как $new (var content ) - содержит недопустимые символы, такие как перенос строки и @, нужно добавить $new = ereg_replace("@", "at", $new);
придеться на это обращать внимание...
ps для аякса использую библиотеку xajax, интересно какое мнение относительно нее у античатовцев
|
|
|

22.04.2008, 21:29
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
С нами:
9840758
Репутация:
808
|
|
Это:
Код:
var content = "test
test";
не работает по правилам JS, библиотека тут не при чём.
Читаем спецификацию ecma-262:
7.3 Line Terminators
Like white space characters, line terminator characters are used to improve source text readability and to
separate tokens (indivisible lexical units) from each other. However, unlike white space characters, line
terminators have some influence over the behaviour of the syntactic grammar. In general, line terminators
may occur between any two tokens, but there are a few places where they are forbidden by the syntactic
grammar. A line terminator cannot occur within any token, not even a string. Line terminators also affect
the process of automatic semicolon insertion (7.8.5).
The following characters are considered to be line terminators:
Код:
Code Point Value Name Formal Name
\u000A Line Feed <LF>
\u000D Carriage Return <CR>
\u2028 Line separator <LS>
\u2029 Paragraph separator <PS>
|
|
|

23.04.2008, 13:19
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
С нами:
10191686
Репутация:
210
|
|
astrologer
Я о том, что jquery не пропускает еще и "@"
|
|
|
|
 |
Предыдущая тема
Следующая тема
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Хакер и закон!
|
SladerNon |
Болталка |
17 |
12.11.2009 09:42 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|