[英]IHTMLDocument2 and Internet Explorer 11 changes on Windows 7
我使用TWebBrowser
在應用程序中具有HTML編輯器,當然這取決於安裝的Internet Explorer版本。 在Windows 7上安裝了全新的Internet Explorer 11之后,我注意到編輯器已更改。 段落似乎不再具有相同的HTML代碼。
在按下Enter鍵之前生成的HTML:
<P> </P>
現在生成的HTML:
<P><BR></P>
這給我的編輯器增加了另一行,看起來並不正確。 <P>
本身有換行, <BR>
在這里完全沒用。
有沒有一種方法可以告訴MSHTML / TWebBrowser控件在編輯模式下按下Enter鍵時要使用哪個標記? 例如,我已經看到一些MS程序生成:
<div><font></font></div>
當您按Enter進入新行。
另外(如果有關系的話)-當我使用命令設置字體大小時,是否有一種方法可以控制使用哪個標記(而不是將過時的size = 1改為size = 7以使CSS像“ font-size :10px的“)
歡迎使用Delphi和C ++ Builder中的代碼示例。
使用bcbhtml :首先將html.cpp添加到您的項目中,並包括“ html.h”:
#include "html.h"
在全局范圍內定義文檔變量:
THTMLDocument document;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
WebBrowser1->Navigate("about:<div contenteditable=true>Type here</div>"); // example editable region
}
void __fastcall TForm1::WebBrowser1DocumentComplete(TObject *ASender, const IDispatch *pDisp,
const OleVariant &URL)
{
document.documentFromVariant(WebBrowser1->Document);
document.onkeydown = &onkeydown;
}
void TForm1::onkeydown()
{
EventObj event = document.parentWindow.event;
if(event.keyCode == VK_RETURN)
{
document.selection.createRange().pasteHTML("<P> </P>"); // You can put every html you like per every key code
event.returnValue = false; // blocks default html which will be generated
}
}
您可以從此處下載這個很棒的包裝器(bcbhtml)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.