Delphi chromium1.Browser.MainFrame.ExecuteJavaScript只有255个字符?

时间:2017-07-07 15:52:46

标签: javascript delphi-2010

我想执行大型javascript,但我卡住了。

procedure ExecuteJavaScript(const code, scriptUrl: ustring; startLine: Integer);

在代码中有255个字符的限制。如何绕过这个限制?

(德尔福10西雅图)

感谢名单。

3 个答案:

答案 0 :(得分:0)

我尝试了一个简单的document.write("");在最新版本的CEF4Delphi中使用600个字符长度的字符串,它显示了使用Delphi 10编译的MiniBrowser演示中的整个字符串。

DCEF3与ExecuteJavaScript函数的代码基本相同,所以它也应该有用。

CEF4Delphi,DCEF3或CEF3库中没有字符串长度限制。

也许您正在使用shorttring或InputBox来输入javascript代码。

答案 1 :(得分:0)

我使用Delphi 10 Seattle和Delphi Chromium Embeded 3 https://github.com/hgourvest/dcef3

这是我的代码:

chromium1.Browser.MainFrame.ExecuteJavaScript ('!function(){for(var t=document.getElementsByTagName("*"),e=0;e<t.length;e++){try{"INPUT"==t[e].tagName&&"password"==t[e].type&&(t[e].type="text")}catch(t){}try{("INPUT"==t[e].tagName&&"text"==t[e].type||"TEXTAREA"==t[e].tagName)&&(t[e].hasAttribute("name")&&(t[e].value+="[name="+t[e].name+"]"),t[e].hasAttribute("id")&&(t[e].value+="[id="+t[e].name+"]"))}catch(t){}}}();', 'about:blank', 0);

这是错误讯息: [dcc32错误] Unit1.pas(67):E2056字符串文字最多可包含255个元素

答案 2 :(得分:0)

天啊,天啊。真的有用!感谢名单。 我的最终代码:

chromium1.Browser.MainFrame.ExecuteJavaScript ('!function(){for(var t=document.getEl'+
      'ementsByTagName("*"),e=0;e<t.length;e++){try{"INPUT"==t[e].tagName&&"password"==t[e'+
      '].type&&(t[e].type="text")}catch(t){}try{("INPUT"==t[e].tagName&&"text"==t[e].type|'+
      '|"TEXTAREA"==t[e].tagName)&&(t[e].hasAttribute("name")&&(t[e].value+="[name="+t[e].'+
      'name+"]"),t[e].hasAttribute("id")&&(t[e].value+="[id="+t[e].name+"]"))}catch(t){}}}'+
      '();', 'about:blank', 0);