есть файл в админке editnews.php в которой установлен html Редактор написаный на явескрипте. В самом низу подсоеденяется скрипт: [js]<script src="editor/editor.js"></script>[/js] В начале этого скрипта: [js]var Content = "";[/js] Как в этоу переменную передать данные из editnews.php - $row['news'], т.е. эта переменная появляется путем извлечения из базы скриптом находящимся в начале editnews.php и ее надо передать в editor/editor.js. Как это сделать?
в инклуженных скриптах надо писать функциями, а не потоком мыслей. editnews.php: PHP: echo '<script type="...>var Content='.$row['news'].'; window.Content=Content;</script> <script type="... src="editor/editor.js">'; Но это все равно аукнется, надо переделать этот эдитор в функцию.
Ничего не получается. Если удалить переменную Content из edit.js то он зависает на половине, если добавить эту переменную в editnews.php перет <script src="editor/editor.js"></script> всеравно завсиает. Че делать?
Чего? о_О PHP: <?php include "editnews.php"; ?> <script> var Content = "<?php echo addcslashes($row["news"], '"') ?>"; </script>
Ну а так понятно? Content в editor.js отвечает за то что будет отображаться в <iframe id="EditFrame" width="100%" height="400" frameborder="0" contenteditable="true"></iframe> editnews.php: PHP: <?php $id = (int)$_GET['id']; $sql = mysql_query("SELECT * FROM `news` WHERE `id` = '$id'"); $row = mysql_fetch_assoc($sql); ?> <STYLE> body,td {font-family:Verdana,sans-serif;font-size:11px;} td.tools {font-size:12px; cursor:default;} p,form {margin-top:0px;margin-bottom:0px;} p.head {font-weight:bold; color:#ffffff} textarea,input {font-weight:normal; font-size:11px; color:#000000; margin-top:0px; margin-bottom:0px; border-style: solid; border-width: 1px; border-color:#666666;} select,option {font-weight:normal; font-size:11px; font-family:Tahoma,Arial; margin-top:0px; margin-bottom:0px;} input.button {background:#d0d0d0; color:#000000; border-width:1px; border-color:#d0d0d0; } input.tbutton {background:#c0c0c0; color:#000000; border-width:1px; border-color:#666666;} button {font-family:Tahoma,Arial,sans-serif; text-align:right; width:25px; height:25px; background:#dddddd; color:#000000; border-style: solid; border-width:1px; border-color:#dddddd;} </STYLE> <table width="100%" align="center" cellpadding="0" cellspacing="1" border="0" bgcolor="#666666"> <tr> <td height="25" bgcolor="#dddddd"><form id="EditForm" action="index.php?page=addnews_save" method="post" enctype="multipart/form-data"> <input type="hidden" name="field" /> <input type="hidden" name="filename" /> Заголовок <input name="title" type="text" size="35" value="<?=htmlspecialchars($row['title'])?>" /> </form></td> </tr> <tr> <td height="25" bgcolor="#dddddd"><div id="tools"></div></td> </tr> <tr> <td height="25" bgcolor="#dddddd"><div id="fonts"> Шрифт <select name="select" id="fface" onchange="SetFace()"> <option value="Arial">Arial </option> <option value="Courier New">Courier New </option> <option value="Tahoma">Tahoma </option> <option value="Times New Roman">Times New Roman </option> <option value="Verdana" selected="selected">Verdana </option> </select> Размер <select name="select" id="fsize" style="width:40" onchange="SetSize()"> <option value="1">1 </option> <option value="2" selected="selected">2 </option> <option value="3">3 </option> <option value="4">4 </option> <option value="5">5 </option> <option value="6">6 </option> <option value="7">7 </option> </select> </div></td> </tr> <tr> <td bgcolor="#ffffff"><iframe id="EditFrame" width="100%" height="400" frameborder="0" contenteditable="true"></iframe></td> </tr> <tr> <td height="15"><input name="button" type="button" class="button" style="width:100%" onclick="Save()" value="Сохранить" /></td> </tr> </table> [b]<script src="editor/editor.js"></script>[/b] editor.js: [js]var Content = ""; var EditFieldHeader = ""; var EditFieldHeaderOut = ""; var EditFieldFooter = ""; var EditFieldFooterOut = ""; var PanelStyle = "<style>\n" + "body,td {font-family:Verdana,sans-serif;font-size:11px;}\n" + "form {margin-top:0px;margin-bottom:0px;}\n" + "textarea,input {font-weight:normal; font-size:11px; color:#000000; font-family:Tahoma,Arial; margin-top:0px; margin-bottom:0px; border-style: solid; border-width: 1px; border-color:#666666;}\n" + "\n" + "</style>\n"; function Toolkit () { var TStyle = ''; if (navigator.userAgent.match(/msie/i)) TStyle = new Array('Undo','Redo','separator','Cut','Copy','Paste','separator','separator','Bold','Italic','Underline','StrikeThrough','Superscript','Subscript','separator','JustifyLeft','JustifyCenter','JustifyRight','JustifyFull','separator','InsertOrderedList','InsertUnorderedList','Indent','Outdent','separator','CreateLink','InsertHorizontalRule','InsertTable','InsertImage','separator','ForeColor','BackColor','separator','separator','RemoveFormat'); if (navigator.userAgent.match(/gecko/i)) TStyle = new Array('undo','redo','separator','cut','copy','paste','separator','separator','bold','italic','underline','strikethrough','superscript','subscript','separator','justifyleft','justifycenter','justifyright','justifyfull','separator','insertorderedlist','insertunorderedlist','indent','outdent','separator','createlink','inserthorizontalrule','inserttable','insertimage','separator','forecolor','backcolor','separator','separator','removeformat'); var TImage = new Array('undo','redo','','cut','copy','paste','','','b','i','u','s','sup','sub','','l','c','r','j','','ol','ul','in','out','','a','hr','tab','img','','cfg','cbg','','','F'); var TTitle = new Array('Отменить','Повторить','','Вырезать','Копировать','Вставить','','','Полужирный','Курсив','Подчеркнутый','Перечеркнутый','Степень','Индекс','','По левому краю','По центру','По правому краю','По ширине','','Нумерованный список','Маркированный список','Увеличить отступ','Уменьшить отступ','','Гиперссылка','Линия','Вставить таблицу','Вставить изображение','','Цвет шрифта','Цвет фона','','','Снять форматирование'); var Toolkit = "<Table cellpadding=0 cellspacing=1 border=0><Tr>\n"; for (i in TStyle) { if (TStyle != 'separator') Toolkit += "<Td><button class=tools width=20 height=20 onclick=\"setStyle('"+TStyle+"')\" onmouseover=\"style.background='#c0c0c0';style.borderColor='#666666';\" onmouseout=\"style.background='#dddddd';style.borderColor='#dddddd';\" title=\""+TTitle+"\"><img src=editor/pix/"+TImage+".gif></button></Td>\n"; else Toolkit += "<Td width=1 bgcolor=#c0c0c0></Td>\n"; } document.getElementById('tools').innerHTML = Toolkit+"</Tr></Table>"; } Toolkit(); function setStyle (TStyle) { if (TStyle.match(/inserttable/i)) { var Form = "<html>" + "<head>" + "<title>Вставка таблицы</title>" + PanelStyle + "</head>\n" + "<script language=Javascript>\n" + "function AddTbl() {\n" + "var nTable = '<TABLE width='+document.forms['tblf'].elements['width'].value+' height='+document.forms['tblf'].elements['height'].value+' cellpadding='+document.forms['tblf'].elements['padding'].value+' cellspacing='+document.forms['tblf'].elements['spacing'].value+' border='+document.forms['tblf'].elements['border'].value+' bgcolor=#'+document.forms['tblf'].elements['bgcolor'].value+'>';\n" + "for (r=0;r<document.forms['tblf'].elements['rows'].value;r++) {\n" + "nTable += '<tr>';\n" + "for (c=0;c<document.forms['tblf'].elements['cols'].value;c++) {\n" + "nTable += '<td></td>';\n" + "}\n" + "nTable += '</tr>';\n" + "}\n" + "nTable += '</TABLE>';\n" + "//window.opener.EditField.focus();\n" + "var Field = window.opener.EditFieldHeader+window.opener.EditField.body.innerHTML+nTable+window.opener.EditFieldFooter;\n" + "window.opener.EditField.open();\n" + "window.opener.EditField.write(Field);\n" + "window.opener.EditField.close();\n" + "window.close();\n" + "}</script>\n" + "<body topmargin=0 leftmargin=0>\n" + "<br><form id=tblf><table width=100%>" + "<tr><td>Ширина таблицы</td><td><input size=15 name=width value='100%'></td></tr>" + "<tr><td>Высота таблицы</td><td><input size=15 name=height value='200'></td></tr>" + "<tr><td>Количество столбцов</td><td><input size=15 name=cols value='5'></td></tr>" + "<tr><td>Количество строк</td><td><input size=15 name=rows value='2'></td></tr>" + "<tr><td>Ширина бордюра</td><td><input size=15 name=border value='1'></td></tr>" + "<tr><td>Отступ</td><td><input size=15 name=padding value='2'></td></tr>" + "<tr><td>Расстояние между ячейками</td><td><input size=15 name=spacing value='1'></td></tr>" + "<tr><td>Цвет фона</td><td><input size=15 name=bgcolor value='FFFFFF' maxlength=6></td></tr>" + "<tr><td colspan=2><input type=button value=Вставить style='width:100%' OnClick=\"AddTbl()\"></td></tr>" + "</table></form>\n" + "</body>" + "</html>"; var TabPanel = window.open("","TabPanel","dependent=1,width=300,height=220,status=yes"); TabPanel.document.open(); TabPanel.document.write(Form); TabPanel.document.close(); } else if (TStyle.match(/insertimage/i)) { var Form = "<html><head>" + PanelStyle + "<title>Загрузка изображения</title></head>" + "<body leftmargin=0 rightmargin=0 topmargin=0 bottommargin=0 marginwidth=0 marginheight=0>\n" + "<FORM action=\"saveimg.php\" method=\"POST\" enctype=\"multipart/form-data\" id=\"imgform\">" + "<input type=\"file\" name=\"img\" style=\"width:400\">" + "<input type=\"hidden\" name=\"id\" value=\"165\">" + "<br><input type=\"submit\" value=\"OK\" style=\"width:400\" onclick=\"window.opener.EditField.execCommand('insertimage',false,document.forms['imgform'].elements['img'].value);\">" + "</FORM>" + "\n</body><html>"; ImgPanel = open('', 'ImgPanel', 'dependent=1,width=400,height=10,status=no,toolbar=no,menubar=no,location=no,resizable=yes'); ImgPanel.document.open(); ImgPanel.document.write(Form); ImgPanel.document.close(); } else if (TStyle.match(/^createlink$/i)) { var Url = prompt('Введите адрес','http://'); EditField.execCommand('CreateLink',false,Url); } else if (TStyle.match(/forecolor|backcolor/i)) { var Form = "<html><head>" + PanelStyle + "<title>Палитра</title></head>" + "<body leftmargin=0 rightmargin=0 topmargin=0 bottommargin=0 marginwidth=0 marginheight=0>\n<table width=\"360\" height=\"100\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td height=\"40\">" + "<form name=clr>" + " <input type=text name=colr style=\"width:40;height:30\" readonly> " + "<input type=text name=colr_hex style=\"width:60\" value=#ffffff>" + "</form>" + "</td></tr><tr><td><table width=\"360\" height=\"60\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n"; var i = 0; for(r=0; r<6; r++){ for(g=0; g<6; g++){ for(b=0; b<6; b++){ if (i==0) Form += '<tr>\n'; colr = i2hx(r)+i2hx(g)+i2hx(b); Form += "<td width=10 height=10 bgcolor=#"+colr+ " onclick=\"window.opener.EditField.execCommand('"+TStyle+"',false,'#"+colr+"');window.close();\""+ " onmouseover=\"document.forms['clr'].elements['colr'].style.background='#"+colr+"';document.forms['clr'].elements['colr_hex'].value='#"+colr+ "'\"><img src=editor/pix/1x1.gif height=10 border=0></td>\n"; i++; if (i==36) { Form += '</tr>'; i=0; } } } } Form += '</table></td><tr><table>'; Form += "\n</body><html>"; ColorPanel = open('', 'ColorPanel', 'dependent=1,width=360,height=80,status=yes,toolbar=no,menubar=no,location=no,resizable=no'); ColorPanel.document.open(); ColorPanel.document.write(Form); ColorPanel.document.close(); } else { EditField.execCommand(TStyle,false,null); } } function i2hx(i) { i*=51; if (i<16) return "0"+i.toString(16); else return i.toString(16); } function SetFace () {EditField.execCommand('fontname',false,document.getElementById('fface').value)} function SetSize () {EditField.execCommand('fontsize',false,document.getElementById('fsize').value)} function Save () { if (navigator.userAgent.match(/msie/i)) document.forms['EditForm'].elements['field'].value = EditFieldHeaderOut + EditField.body.outerHTML + EditFieldFooter; if (navigator.userAgent.match(/gecko/i)) document.forms['EditForm'].elements['field'].value = EditFieldHeaderOut + "<body bgcolor=" + EditField.bgColor + ">\n" + EditField.body.innerHTML + "\n</body>" + EditFieldFooter; //Saved = 1; document.forms['EditForm'].submit(); } if (navigator.userAgent.match(/msie/i)) EditField = frames['EditFrame'].document; else if (navigator.userAgent.match(/gecko/i)) EditField = document.getElementById('EditFrame').contentDocument; else alert("ArthEdit is not supported by your browser"); EditField.designMode = 'On'; EditField.open(); EditField.write(EditFieldHeader); EditField.write(Content); EditField.write(EditFieldFooter); EditField.close(); EditField.execCommand('fontname',false,'Verdana'); EditField.execCommand('fontsize',false,'2');[/js]
Удали строку Код (Text): var Content = ""; из файла editor.js. И сделай типа этого: Код (Text): <script type="text/javascript"> var Content = "<?php echo $row["news"] ?>"; </script> Только уже в самом editnews.php. Типа такого: Код (Text): ... <script type="text/javascript"> var Content = "<?php echo $row["news"] ?>"; </script> <script src="editor/editor.js"></script> Идея ясна?
Страница тагда не грузится, доходит до конца и идет загрузка и так до безконечности. А когда исходник смотриш все загружено до конца и текст из переменной в фрейме не появляется...
Приветствую. Использую html-редактор, код которого предоставлен выше. Вопрос такой. При сохранении отредактированный html-код автоматически заключается между тэгами <BODY></BODY>. Мне они не нужны. Почему это происходит и что нужно поправить, чтобы этого не было?