Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [Вопрос] jquery, obj.html() или obj.innerHTML (https://forum.antichat.xyz/showthread.php?t=68058)

Naydav 22.04.2008 18:41

[Вопрос] 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">&nbsp;</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 возможно это символ - "@"

astrologer 22.04.2008 19:48

Нужно смотреть на код, который получается в итоге, т.е. после того, как отработает php и получится страница.
P.S. может, не работает потому, что закомментировано? %)

Isis 22.04.2008 20:41

.append ?

Naydav 22.04.2008 21:04

.append - Не сработает, так же как и

var content = "test
test";
obj.innerHTML = content;

так как $new (var content ) - содержит недопустимые символы, такие как перенос строки и @, нужно добавить $new = ereg_replace("@", "at", $new);

придеться на это обращать внимание...

ps для аякса использую библиотеку xajax, интересно какое мнение относительно нее у античатовцев

astrologer 22.04.2008 21:29

Это:
Код:

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>



Naydav 23.04.2008 13:19

astrologer
Я о том, что jquery не пропускает еще и "@"


Время: 18:06