我使用 TEmbeddedWebBrowser
使用 FillForm
方法填写 html 表单。但是我的 html 表单包含一个完全基于 javascript 的编辑器,我不知道如何填写它。
像这样:
your comment :
<script type='text/javascript' src='public/scripts/src/editor.js?1'></script>
提交按钮:
<input type="submit" name="btnSubmit" id="btnSubmit" value="Send" class="btn" onclick="rtevalue("data[body]",437934);" />
最佳答案
编辑器本身就是一个DIV
(可以是其他 HTML 元素)或 IFRAME
设置为 contentEditable / designMode
= on
.
如果元素是 DIV
你可以使用它的 InnerHTML
属性(property)。
为获得最佳效果 IFRAME
使用以下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
editorDoc: OleVariant;
range: OleVariant;
id: OleVariant;
begin
id := 'editor'; // frame ID
editorDoc := (WebBrowser1.Document as IHTMLDocument2).parentWindow.frames.item(id).Document;
range := editorDoc.body.createTextRange();
// range.collapse(false); // if you need to append
range.select();
range.pasteHTML('<b>Boo!</b>');
end;
注意事项:
- 没有错误检查来简化代码。
- 你也可以试试
range.execCommand('inserthtml', false, MyText)
(未使用TEmbeddedWebBrowser
进行测试,但当我在HTML
上使用普通Javascript
/IE
进行测试时得到了虚假结果)。
关于javascript - 我如何填写一个javascript编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9700988/