導航:首頁 > 編程語言 > twebbrowser執行js

twebbrowser執行js

發布時間:2023-09-26 19:20:32

⑴ 怎樣讓webbrowser執行js腳本正常顯示網頁

瀏覽器抄一般都對腳本具有容錯襲性的,一些小差錯會自動忽略或智能修正,而WebBrowser控制項的容錯性較差,稍有差錯就會提示,所以並不是說WebBrowser不支持JS腳本,而是它對腳本的准確性要求較高。
補充說一下:正是由於瀏覽器的容錯性,使得一些腳本編寫者認為只要是瀏覽器中能運行的腳本就是正確的,使得一些錯誤被習慣性地不斷重復,因此現在好多網頁上的腳本代碼其實都是含有錯誤的,尤其是一些公開的代碼,復製得越多就越有錯。

⑵ 如何用delphi在twebbrowser中調用javascript

設置項目的屬性「Make assembly COM-Visible」為選中狀態。編譯之後得到 TestClass.dll,把此dll放到Delphi主程序目錄下。
打開vs2005自帶的工具「內Visual Studio 2005命令提示」容,輸入
Regasm 路徑/TestClass.dll 向系統注冊此dll。

⑶ 如何在WebBrowser控制項中注入Javascript腳本

在WebBrowser中注入並執行javascript代碼
更多 0
c#WebBrowserWinForm

WebBrowser控制項用來顯示網頁內容,有時候我們需要在網頁中執行一段自定義的javascript代碼。

如下是實現和注釋:

//找到head元素
HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
//創建script標簽
HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
//給script標簽加js內容
element.text = "function sayHello() { alert('hello') }";
//將script標簽添加到head標簽中
head.AppendChild(scriptEl);
//執行js代碼
webBrowser1.Document.InvokeScript("sayHello");

⑷ 如何用Delphi在TWebBrowser中調用JavaScript

XE6的TWebBrowser新增了EvaluateJavaScript方法,這個方法,允許我們與TWebBrowser已經載入的的網頁進行交互。這太方便了!作者用一個具體的實例,演示如何調用Google map的API。
首先,建立一個網頁:
const
{ Was used sample from }
{ https://developers.google.com/maps/documentation/javascript/examples/directions-panel }
cRoute =
''
+ ''
+ ' '
+ ' '
+ ' '
+ ' setPanel()'
+ ' '
+ ' '
+ '
+ '
+ ' '
+ ' '
+ '
'
+ ' Start:'
+ ' '
+ ' End:'
+ ' '
+ '
'
+ ' '
+ ' '
+ ' '
+ '';
然後,用一個TWebBrowser調入:
WebBrowser1.LoadFromStrings(cRoute, '');
再聲明兩個常量:

cChicagoWinona =
'document.getElementByIdx_x(''start'').value = "chicago, il";'
+ 'document.getElementByIdx_x(''end'').value = "winona, az";'
+ 'calcRoute();';
cStLouisGallupNM =
'document.getElementByIdx_x(''start'').value = "st louis, mo";'
+ 'document.getElementByIdx_x(''end'').value = "gallup, nm";'
+ 'calcRoute();';
用兩個按鈕調用:

procere TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.EvaluateJavaScript(cChicagoWinona);
end;
procere TForm1.Button2Click(Sender: TObject);
begin
WebBrowser1.EvaluateJavaScript(cStLouisGallupNM);
end;

⑸ 請教:如何在Delphi 的 Webbrowser 里 調用或執行 JS 帶參 函數或過程

在 delphi 里,使用 WebBrowser 執行 js 代碼,參閱以下示例:


procereTForm1.btn1Click(Sender:TObject);
var
doc:olevariant;
str:string;
begin
doc:=wb1.Document;
//執行js
wb1.OleObject.document.parentWindow.execScript('zbxxcx("50E13DA0-728B-455E-89EC-18B71477C47E")','JavaScript');
end;

⑹ Qt使用WebBrowser並調用網頁中的JS函數怎麼實現

在界面上拖入QAxWidget,注意這里不建議直接在UI設計界面指定控制項,否則可能引起QtCreator崩潰
建議在代碼中動態設置,如:

[cpp] view plain
ui->axWidget->setControl("Shell.Explorer");
ui->axWidget->dynamicCall("Navigate(QString)", "C:/1.html");
當然,上面的"C:/1.html"是我測試的頁面

這里的辦法是通過IHTMLWindow2介面的execScript方法執行JavaScript函數。可惜的是這個方法不支持函數返回值
[cpp] view plain
#include <MsHTML.h>

{
QAxObject *document = ui->axWidget->querySubObject("Document");
IHTMLDocument2 *doc2;
document->queryInterface(QUuid(IID_IHTMLDocument2), (void**)&doc2);
if (doc2)
{
IHTMLWindow2 *win2 = nullptr;
if (doc2->get_parentWindow(&win2) == S_OK)
{
BSTR s1 = SysAllocString(L"Test()");
BSTR s2 = SysAllocString(L"JavaScript");
VARIANT ret;
win2->execScript(s1, s2, &ret);
SysFreeString(s2);
SysFreeString(s1);
}
}
}
JavaScript函數如下
[html] view plain
<script language="javascript" type="text/javascript">
function Test()
{
alert("你調用了全局函數Test");
}
</script>

⑺ C# webbrowser 里如何調用網頁里的js函數

webBrowser1.Navigate("javascript:alert('hello');");

說明來
webBrowser1.Navigate("javascript:[你要執行的javascript語句源];");

如果你要執行那個函數代碼如下:
webBrowser1.Navigate("javascript:test.work('1','0','5');");

⑻ webbrowser 裡面的js怎麼調用C#

通過webBrowser實現C#和javascript互調
實現步驟:
一、新建一個窗體,加入webBrowser控制項
控制項名:webBrowser1

二、在窗體後台代碼加入如下定義
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{
...
}

三、載入網頁
webBrowser1.Navigate(Application.StartupPath + "/UpDateReport.htm");
webBrowser1.ObjectForScripting = this; //這句必須,不然js不能調用C#

四、調用腳本方法
/// <summary>
/// 腳本方法
/// </summary>
/// <param name="tag">JS函數名|參數1|參數2</param>
/// <returns></returns>
private object EXEC_JS(System.Windows.Forms.WebBrowser webBrowser, string tag)
{
string[] args = tag.Split('|');
if (args.Length == 1)
{
return webBrowser.Document.InvokeScript(args[0], null);
}
else
{
object[] objects = new object[args.Length - 1];
Array.Copy(args, 1, objects, 0, objects.Length);
return webBrowser.Document.InvokeScript(args[0], objects);
}
}

五、C#調用腳本方法例子,可以有返回值
//JS方法
<script language="javascript">
function js_fun(args)
{
alert("我是通過js腳本彈出的。你輸入的內容是:"+args);
return "JAVASCRIPT";
}
</script>
//C#代碼
object returnvalue = EXEC_JS(webBrowser1, "js_fun|參數字元串");
MessageBox.Show("js方法返回值是:" + returnvalue.ToString());

六、JS調用C#方法的例子
//C#方法
public string Test(string args)
{
return "你輸入的是:"+args;
}
//JS代碼
<script language="javascript">
window.onload = function()
{
var CS_returnvalue= window.external.Test("aaa");
alert(CS_returnvalue);
}
</script>

閱讀全文

與twebbrowser執行js相關的資料

熱點內容
廣州寄文件去吉林多少錢 瀏覽:254
蘋果APP文件夾創建 瀏覽:903
黃米是什麼app 瀏覽:417
word如何插入一個新文件夾 瀏覽:357
word文件夾前面有個符號 瀏覽:350
把word轉換成語音 瀏覽:220
linuxfile文件 瀏覽:454
如何用網路打普通電話 瀏覽:463
linux進程打開的文件 瀏覽:134
新購u盤無法儲存文件 瀏覽:553
5s要不要升級ios93 瀏覽:926
小米手機助手怎麼關閉自動升級 瀏覽:24
外星人能不能升級到win10系統盤 瀏覽:652
加入java信任站點 瀏覽:486
好用的急救知識app 瀏覽:524
什麼是網路適配器驅動文件名 瀏覽:717
吉林文件箱多少錢 瀏覽:113
ae模板版本 瀏覽:204
手機qq步數功能在哪裡 瀏覽:721
c程序設計04737 瀏覽:403

友情鏈接