所以我只花了一个小时试图让它工作。我正在对 TWebBrowser 进行一些测试,因此我可以将我的发现应用到一个项目中。我想测试将内容加载到其中的不同方式(URL、LoadFromStrings() 和 EvaluateJavaScript())。问题是,无论如何我都不能将一个简单的字符串传递给最后一个方法,而不会错误地陷入撇号中。
procedure TForm1.FormCreate(Sender:TObject);
const S='<span style="color:red">ABC</span><span style="color:green">ABC</span><span style="color:blue">ABC</span>';
begin
WebBrowser1.LoadFromStrings('<html><body><div id="target">[x]</div></body></html>','');
WebBrowser1.EvaluateJavaScript('document.getElementById("target").insertAdjacentHTML('+
'"beforend",'#39+S+#39');');
end;
看到#39了吗?如果没有它们,则发送的字符串根本不带撇号,因此生成的 JavaScript 脚本无效。如果它们仍然存在,我会在字符串的每一端得到两个撇号,仍然会弄乱脚本。这是什么?