[英]Getting return value from Javascript in C# Webbrowser control WPF
我在C# (System.Windows.Controls.WebBrowser)
中將JavaScript注入到WebBrowser控件中,這樣, <C#>
IHTMLDocument2 webdoc = (IHTMLDocument2)webBrowser1.Document;
string var = File.ReadAllText("C:/.../Resources/script.txt");
object retVal = webdoc.parentWindow.execScript(var, "Jscript");
和JavaScript文件script.txt是,
var headID = document.getElementsByTagName('head')[0];
var newScript = document.createElement('script');
newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js'
headID.appendChild(newScript)
$('body').bind('click',function(e){
var domsArray = [];
for (var i = 0; i < 15; i++){
for (var j = 0; j < 15; j++){
if (document.elementFromPoint(e.clientX+i, e.clientY+j) && (jQuery.inArray(document.elementFromPoint(e.clientX+i, e.clientY+j), domsArray) < 0)){
domsArray.push(document.elementFromPoint(e.clientX+i, e.clientY+j));
}if (document.elementFromPoint(e.clientX-i, e.clientY+j) && (jQuery.inArray(document.elementFromPoint(e.clientX-i, e.clientY+j), domsArray) < 0)){
domsArray.push(document.elementFromPoint(e.clientX-i, e.clientY+j));
}if (document.elementFromPoint(e.clientX+i, e.clientY-j) && (jQuery.inArray(document.elementFromPoint(e.clientX+i, e.clientY-j), domsArray) < 0)){
domsArray.push(document.elementFromPoint(e.clientX+i, e.clientY-j));
}if (document.elementFromPoint(e.clientX-i, e.clientY-j) && (jQuery.inArray(document.elementFromPoint(e.clientX-i, e.clientY-j), domsArray) < 0)){
domsArray.push(document.elementFromPoint(e.clientX-i, e.clientY-j));
}}}
for (var p = 0; p < domsArray.length; p++){
alert(domsArray[p].href);
}});
它的作用是,每當用戶點擊webbrowser頁面中的任何一點時,它就會收集該點附近的href。
我想將href數組返回到我的C#,以便我可以使用這些鏈接創建按鈕。
但是,當我試過的時候,
Console.WriteLine(retVal);
它沒有在控制台上打印任何東西。 即使我將它們轉換為字符串或int與其他虛擬返回值之類的東西,它也沒有打印任何東西。 我得到了正確的回報嗎? 有什么辦法可以測試javascript的輸出回報嗎?
我認為這可能是一個范圍問題。 你有沒有試過移動
var domsArray = [];
在(上)之外
$('body').bind('click',function(e){ ....
功能? 如
var domsArray = [];
$('body').bind('click',function(e){
for (var i = 0; i < 15; i++){ < ... etc ....>
我也認為你錯過了幾個分號(script.txt的第3和第4行),盡管這可能不會產生任何影響。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.