Отправка HTML-файла из asp.net через Internet Explorer

Недавно я работал над инструментом, в котором пользователь вносит изменения в интерфейс, и при нажатии кнопки «Сохранить» шаблон сохраняется на сервере… как HTML-файл… все было хорошо… я смог сохранить файл со всех основные браузеры (я проверял в FireFox и Chrome), но когда я попытался сохранить файл из Internet Explorer....

он не выдает файл должным образом.. HTML неправильно отформатирован.. из-за чего приложения вылетают...

Ниже приведен правильный формат при проверке из Firefox и Chrome...

    <tr>
                <td colspan="2" align="center">
                    <div class="searchDiv">
                        <span>Leader Board Box: </span><span class="pd2">
                            <textarea rows="5" cols="52" id="txtLeaderBoardAd" style="width:631px;"></textarea></span><br>
                        <br>
                        <span>Site Logo: </span><span style="padding-left: 34px">
                            <input type="text" size="47" id="txtLogoImage" value=""></span><span>Width: </span><span>
                            <input type="text" size="15" id="txtLogoImageWidth" value=""></span><span>Height: </span><span>
                            <input type="text" size="15" id="txtLogoImageHeight" value=""></span><br>
                        <br>
                        <span>Link Url: </span><span style="padding-left: 70px">
                            <input type="text" id="txtLogoLinkUrl" size="100" value=""></span><br>
                        <br>
                    </div>
                </td>
            </tr>


But when tried to save the same format from Internet Explorer... it emit the format like below


<TR sizset="9" sizcache="3">
        <TD colSpan="2" align="middle" nodeindex="1" nodeIndex="1">
            <DIV class="searchDiv">
                <SPAN>Leader Board Box: </SPAN>
                <SPAN class="pd2">
                    <TEXTAREA style="WIDTH: 631px" id="txtLeaderBoardAd" rows="5" cols="52"></TEXTAREA>
                </SPAN>
                <BR>
                    <BR>
                        <SPAN>Site Logo: </SPAN>
                        <SPAN style="PADDING-LEFT: 34px">
                            <INPUT id="txtLogoImage" size="47" type="text">
                        </SPAN>
                        <SPAN>Width: </SPAN>
                        <SPAN>
                            <INPUT id="txtLogoImageWidth" size="15" type="text">
                        </SPAN>
                        <SPAN>Height: </SPAN>
                        <SPAN>
                            <INPUT id="txtLogoImageHeight" size="15" type="text">
                        </SPAN>
                        <BR>
                            <BR>
                                <SPAN>Link Url: </SPAN>
                                <SPAN style="PADDING-LEFT: 70px">
                                    <INPUT id="txtLogoLinkUrl" size="100" type="text">
                                </SPAN>
                                <BR>
                                    <BR>
            </DIV>
        </TD>
    </TR>

я не понимаю ... он просто удаляет кавычки из всех атрибутов ... а также добавляет дополнительные атрибуты, такие как sizset и sizcache ... мне нужно отформатировать что-то дополнительное для IE

Пожалуйста, помогите... я застрял здесь. *********************ВОТ КАК Я СОХРАНЯЮ ФАЙЛ********** я использую Ajax Jquery для сохранения файла в формате html...

[WebMethod]
    public static string WriteToHTMLFile(string data) 
    {
        using (StreamWriter writer = new StreamWriter(HttpContext.Current.Server.MapPath("/NewsletterTemplate/HTMLPage.htm")))
        {
            writer.WriteLine(data);
            writer.Flush();
        }
        return "Saved Successfully";
    }

а затем просто вызывая вышеуказанную функцию в Javascript.. как показано ниже

$.ajax({ type: "POST", url: "AjaxMethods.aspx/WriteToHTMLFile", contentType: "application/json", data: "{'data':'" + $("#dvGetHTML").html() + "'}", success: function (data) {
                        $("#dvGetHTML").html($("#dvGetHTML").html());
                    }, error: function (data) { alert("Error in Save.. Please contact your administrator !!!" + data.responseText); }
                    });

person Abbas    schedule 06.09.2011    source источник
comment
Было бы полезно посмотреть, как вы сохраняете файл .html — возможно, именно здесь возникает проблема.   -  person Burb    schedule 07.09.2011
comment
Как вы сохраняете файл? Может показаться глупым вопрос, я знаю... но это может быть разница...   -  person shawty    schedule 07.09.2011
comment
@shawty: я обновил свой вопрос, добавил способ сохранения файла.   -  person Abbas    schedule 07.09.2011
comment
я обновил свой вопрос, добавил способ сохранения файла.   -  person Abbas    schedule 07.09.2011


Ответы (1)


аааааа.....

Я вижу, где ты ошибаешься :-)

Вы выдергиваете html прямо из DOM браузера, верно? и я предполагаю, что #dvGetHTML - это div?

Мне кажется, что IE каким-то образом представляет HTML внутри себя иначе, чем в других браузерах, и когда вы вытаскиваете его из своего div, это то, что вы получаете.

В качестве эксперимента попробуйте использовать простой старый текстовый тег области, вы можете редактировать его, и форматирование, как правило, подчиняется старым добрым правилам предварительного тега.

Преимущество заключается в том, что все, что введено в текстовую область, возвращается дословно как есть, как если бы это было поле ввода, если вы не получаете странного форматирования, когда делаете это, вероятно, проблема в том, как и ожидалось.

Если вы докажете, что это ваша проблема, я бы использовал редактор на стороне клиента, такой как «Tiny MCE», чтобы добиться того, что вы пытаетесь сделать с div.

person shawty    schedule 06.09.2011
comment
требование только для полей ввода .. потому что с текстовой областью. я получаю скроллеры по умолчанию .... но я вижу ту же проблему с текстовой областью, что и с полями ввода ... почему форматирование меняется с других браузеров на IE. - person Abbas; 07.09.2011
comment
Я вижу, вы отмечены как ответ. :-) Я еще не успел это проверить. Другие вещи (например, сломанный сервер) мешали. Я расследую, как только смогу, это интригует. - person shawty; 21.09.2011