Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 22.08.2015, 16:41
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Если непонятно. Я опишу задачу в более полной форме. Я сразу могу сказать, что javascript я совсем не знаю, поэтому я не могу оценить насколько трудна эта задача. Но решение для меня очень желательно.
Такое ощущение, что мы как в разных странах живем и через переводчик общаемся' )
Ответить с цитированием
  #12 (permalink)  
Старый 22.08.2015, 16:57
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Сообщение от laimas
Это значит не удачно описывается - описание, это описание, а если что-то должно исполняться, то это уже исполняемый пример в описании.
Я Вас вообще не понял.

Вот смотрите. Есть файл. В файле обычный HTML код. Вот он этот код.
<HTML><body>\n
   <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n
<meta http-equiv='content-type' content='text/html; charset=utf-8'>

    <link href='http://ci-plus-plus-snachala.ru/syntaxhighlighter_3.0.83/styles/shCore.css' rel='stylesheet' type='text/css'/>
	<link href='http://ci-plus-plus-snachala.ru/syntaxhighlighter_3.0.83/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
	<script src='http://ci-plus-plus-snachala.ru/syntaxhighlighter_3.0.83/scripts/shCore.js' type='text/javascript'></script>
	<script src='http://ci-plus-plus-snachala.ru/syntaxhighlighter_3.0.83/scripts/shBrushCpp.js' type='text/javascript'></script>
	<script language='javascript'>
	SyntaxHighlighter.all();
	</script>



 <!----------------КОД----------------------------->
<pre class='brush: cpp'>
#include &lt;iostream&gt;
<br />
using namespace std;

int main(){
    setlocale(LC_ALL,&quot;&quot;);
    int Height,Weight;

    cout&lt;&lt;&quot;Введите Ваш рост и вес:\n&quot;;
    cin&gt;&gt;Height&gt;&gt;Weight;

    cout&lt;&lt;&quot;Ваш рост: &quot;&lt;&lt;Height&lt;&lt;endl;
    cout&lt;&lt;&quot;Ваш вес: &quot;&lt;&lt;Weight&lt;&lt;endl;


}
</pre>
 <!----------------КОД----------------------------->
 </body></HTML>

Файл с этим кодом хранится на сервере, следовательно, чтобы его получить, я использую php, а из php уже отдаю в javascript. Если я не экранирую символы и не преобразую HTML в HTML сущности, то этот код в итог ломается и уже когда выполняется javascript у меня нефига не работает. А если я преобразую, то я на выходе получаю вот такой HTML код
&lt;HTML&gt;&lt;body&gt;\\n
   &lt;!DOCTYPE HTML PUBLIC \'-//W3C//DTD HTML 4.01 Transitional//EN\'&gt;\\n
&lt;meta http-equiv=\'content-type\' content=\'text/html; charset=utf-8\'&gt;
 
    &lt;link href=\'http://ci-plus-plus-snachala.ru/syntaxhighlighter_3.0.83/styles/shCore.css\' rel=\'stylesheet\' type=\'text/css\'/&gt;
    &lt;link href=\'http://ci-plus-plus-snachala.ru/syntaxhighlighter_3.0.83/styles/shThemeDefault.css\' rel=\'stylesheet\' type=\'text/css\'/&gt;
    &lt;script src=\'http://ci-plus-plus-snachala.ru/syntaxhighlighter_3.0.83/scripts/shCore.js\' type=\'text/javascript\'&gt;&lt;/script&gt;
    &lt;script src=\'http://ci-plus-plus-snachala.ru/syntaxhighlighter_3.0.83/scripts/shBrushCpp.js\' type=\'text/javascript\'&gt;&lt;/script&gt;
    &lt;script language=\'javascript\'&gt;
    SyntaxHighlighter.all();
    &lt;/script&gt;
 
 
 
 &lt;!----------------КОД-----------------------------&gt;
&lt;pre class=\'brush: cpp\'&gt;
#include &amp;lt;iostream&amp;gt;
&lt;br /&gt;
using namespace std;
 
int main(){
    setlocale(LC_ALL,&amp;quot;&amp;quot;);
    int Height,Weight;
 
    cout&amp;lt;&amp;lt;&amp;quot;Введите Ваш рост и вес:\\n&amp;quot;;
    cin&amp;gt;&amp;gt;Height&amp;gt;&amp;gt;Weight;
 
    cout&amp;lt;&amp;lt;&amp;quot;Ваш рост: &amp;quot;&amp;lt;&amp;lt;Height&amp;lt;&amp;lt;endl;
    cout&amp;lt;&amp;lt;&amp;quot;Ваш вес: &amp;quot;&amp;lt;&amp;lt;Weight&amp;lt;&amp;lt;endl; 
}
&lt;/pre&gt;
 &lt;!----------------КОД-----------------------------&gt;
 &lt;/body&gt;&lt;/HTML&gt;
На клиенте я открываю новое окно и вписываю этот код в это окно, но из-за предыдущих преобразований получается, что это текст в виде HTML кода, а мне нужно, чтобы это получилась страничка с исходным HTML кодом. (тот, что выше).При этом должна сработать подсветка кода.
Ответить с цитированием
  #13 (permalink)  
Старый 22.08.2015, 16:59
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

В смысле, я при некотором действии пользователя открываю окно, в которое должен вписаться изначальный текст, взятый с файла, который хранится на сервере'
Ответить с цитированием
  #14 (permalink)  
Старый 22.08.2015, 17:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<HTML><body>
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<meta http-equiv='content-type' content='text/html; charset=utf-8'>
......

Это html-код страницы. Зачем его преобразовывать?

using namespace std;

int main(){
setlocale(LC_ALL,&quot;&quot;
int Height,Weight;

cout&lt;&lt;&quot;Введите Ваш рост и вес:\n&quot;;
cin&gt;&gt;Height&gt;&gt;Weight;
cout&lt;&lt;&quot;Ваш вес: &quot;&lt;&lt;Weight&lt;&lt;endl;

.....

Это описание кода и необходимое уже преобразовано в html-сущности. Зачем к этому раз применять ко всему содержимому htmlspecialchars?
Ответить с цитированием
  #15 (permalink)  
Старый 22.08.2015, 17:44
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Сообщение от laimas Посмотреть сообщение
<HTML><body>
Это описание кода и необходимое уже преобразовано в html-сущности. Зачем к этому раз применять ко всему содержимому htmlspecialchars?
Надо не применять еще раз, надо убрать те применения, которые были сделаны. Вернуть в то состояние как оно было.

То, что внутри комментариев <!--Код--> к HTML коду отношения не имеет. Это изначально HTML сущности, это изначально угловые скобки, кавычки и другие элементы текста, но это так только между комментариями <!--Код-->/ Хотя даже в нем есть элементы, которые преобразованы в HTML сущности... это плохо.
_________________

Применять затем, что без применения при вставке переменной php в переменную javascript, без подобной редактуры текста у меня ВСЁ, абсолютно ВСЁ не работает.

Последний раз редактировалось daslex, 22.08.2015 в 17:50.
Ответить с цитированием
  #16 (permalink)  
Старый 22.08.2015, 18:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вы понимаете назначение функции htmlspecialchars? Думаю что да.
Остается понять кто автор данных описаний - если вы, то неужели трудно определиться что должно на странице быть описанием, а что его представлять? Если не вы, то почему разрешается такой "винегрет", а не храниться описание отдельно, к которому только при выводе нужно применять htmlspecialchars?
Ответить с цитированием
  #17 (permalink)  
Старый 22.08.2015, 18:08
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Я знаю что она делает и зачем она нужна.
Терминология "описаний" мне непонятна.
Открытое на клиенте окно с вписанным в него текстом должно стать HTML страницей, той самой HTML страницей, которая хранится на сервере.
Ответить с цитированием
  #18 (permalink)  
Старый 22.08.2015, 18:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вставляйте в чем проблема? Зачем вы ее пропускаете через htmlspecialchars, ведь код описания уже преобразован?
Ответить с цитированием
  #19 (permalink)  
Старый 22.08.2015, 18:20
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Вот текст исходной страницы.
<?php
  $arr[] = str_replace('</script>','</s" + "cript>',htmlspecialchars(addslashes(file_get_contents("MyFiles/MyFile.php"))));
?>
 
<script type='text/javascript' >
   function MyFunc(S){
      var NewWin=window.open('','','...');
      NewWin.document.write(S);  
   }
</script>
 
<div id="id2" >
 <b>Кликни меня</b><br />
<script type='text/javascript'>  
document.getElementById("id2").onclick = MyFunc.bind(null,<?php echo json_encode($arr[0]); ?>);
</script>
</div>


С помощью php я записываю текст из файла в ячейку массива. Т.к. тупо записать без экранирования+htmlspecialchars у меня не вышло, мне подсказали использовать экранирование и htmlspecialchars.

Дальше при клике по элементу <div>, должно открыться окно, в которое должен вписаться текст из файла, вписаться он должен как HTML код. Если все правильно, то пользователь, кликнувший по <div>, должен получить открытое окно, которое будет чем-то типа зеркального отражения файла с сервера, даже не файла, а полноценной HTML странички. Т.е. это такая вот передача текстовых данных с сервера в открываемое окно у клиента.

Последний раз редактировалось daslex, 22.08.2015 в 18:24.
Ответить с цитированием
  #20 (permalink)  
Старый 22.08.2015, 18:21
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Проблема в том, что если не преобразовывать HTML код в HTML сущности, то при передаче текстовых данных в массив возникают непонятные мне проблемы. А если преобразовывать, то я получаю не отражение HTML страницы, а отражение ее кода.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Заменить символы в строке, затем преобразовать строку в html majahead jQuery 2 03.03.2011 16:52
В зависимости от значения флажка выводить разный php код ZusulZoid Элементы интерфейса 2 06.09.2010 21:20
JavaScript Html + PHP oleh12 Я не знаю javascript 3 07.06.2009 15:37
как узнать html код документа, подгруженного в iframe alexKniaz Events/DOM/Window 7 03.12.2008 12:37