我的用户脚本将在其上运行的页面具有命名空间,命名空间定义了构造函数.我想使用相同的构造函数创建一个对象,并使用我的用户脚本中的对象的方法.到目前为止,我一直没有成功.这就是我想要做的.
该页面包含以下原生javascript块:
var namespace={ constructor : function(){
this.sum = function(value1,value2){
alert(value1+value2);
}
}
}
Run Code Online (Sandbox Code Playgroud)
被用作:
var pageObject=new namespace.constructor();
pageObject.sum(1,2);
Run Code Online (Sandbox Code Playgroud)
在My Userscript中,我打算像pageObject一样创建一个对象,并使用我自己的参数调用sum.
我尝试过以下操作:
var greaseNameSpace = unsafeWindow.namespace;
var greaseObject = new greaseNameSpace.constructor();
greaseObject.sum(1,2);
Run Code Online (Sandbox Code Playgroud)
没有运气,虽然出现了greaseNameSpace,甚至greaseNameSpace.constructor也是一个有效的函数,使用new greaseNameSpace.constructor()会产生undefined.
也试过以下:
var greaseObject =new unsafeWindow.namespace.constructor();
Run Code Online (Sandbox Code Playgroud)
再次,greaseObject仍未定义.
我在这里找到一个线程如何创建在远程页面中定义的类的对象?
但它使用eval,我想知道这是否正确?
任何和所有的帮助将非常感谢:)谢谢!
大家好,我正在尝试开始为 terraform-provider-azurerm 做出贡献。我注意到我已在此处azurerm_firewall_network_rule_collection 报告了一个问题。我想我应该以此为契机,看看我是否可以出力并尝试解决我报告的问题!如果我可以调试提供程序并查看代码如何工作,那么我不仅可以学习 Go,还可以找出并帮助修复错误/功能增强。你们可以为我提供任何帮助并引导我走向正确的方向,我将不胜感激。我知道您的时间很宝贵,在来寻求帮助之前我已经尽力了。
我尝试做的事情总结如下:
terraform-provider-azurerm存储库。Ubuntu 20.04我在 WSL 中使用。vscode版本1.54.3terraform 0.14.9,用于tfenv安装和管理不同版本。golang及相关go工具。我在go version go1.16.2 linux/amd64. 用于linuxbrew安装go。gcc5。用于linuxbrew安装。delve调试器。用于linuxbrew安装。main.tf,仅将资源组部署到我的 Azure 订阅。.terraformrc文件(将其设置在该位置/home/rahul/.terraformrc)以向提供程序提供 dev_overrides 路径。main.go(location /usr/local/go/src/github.com/terraform-providers/terraform-provider-azurerm/main.go) 以使用调试语句。