gpt4 book ai didi

javascript - 如何将数组从 wpf 控件传递到 webbrowser 控件中的 javascript 函数?

转载 作者:行者123 更新时间:2023-12-03 10:15:10 25 4
gpt4 key购买 nike

我可以发送一个参数,但无法发送数组。

C# 代码:

string[] mes = {"Bascketball Stadium", "New Address", "Ilya"};
this.MyWebBrowser.InvokeScript("DaveWriter", mes);

JavaScript 代码:

function DaveWriter(mes){
var arr = jQuery.makeArray(mes);
document.getElementById('company').innerHTML = arr[0];
document.getElementById('address').innerHTML = arr[1];
}

我只收到数组的第一个元素。

我应该更改什么才能接收所有元素?

最佳答案

非常棘手,因为 InvokeScript 将参数作为数组。例如,您实际上是在那里传递 3 个参数,而不是一组参数,mes 的每个元素都将是 DaveWriter 的一个参数。意思是,如果您将其更改为:

function DaveWriter(arg1, arg2, arg3) {
// Your code
}

它会在那里。据我所知,没有一种干净的方法可以做你想做的事。有些人推荐 JSON,然后在 JavaScript 中评估 JSON。我不喜欢这个想法,因为你必须使用 eval() 这让我感觉不对。

这是我的建议。如果您像现在一样传递它,然后通过 arguments 变量访问它,会怎么样?请参阅Arguments object了解更多信息。基本上:

function DaveWriter(mes){ 
document.getElementById('company').innerHTML = arguments[0];
document.getElementById('address').innerHTML = arguments[1];
}

这并不理想,但它可以让你做你想做的事。我不相信还有很多其他选择。也许有人知道一种更干净的方法,但这应该对你有用。我没有机会进行全面测试,因为我没有方便的带有 Web 浏览器的 WPF 应用程序,但我认为这将满足您的需求。

关于javascript - 如何将数组从 wpf 控件传递到 webbrowser 控件中的 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29919462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com