Mil*_*adi 4 html javascript function
我有这个JavaScript代码:
var cr = {};
cr.plugins_ = {};
cr.runtime = null;
cr.plugins_.Vinoos_Markets = function(runtime) {
this.runtime = runtime;
};
(function() {
function initialize_events(result) {
alert(result);
}
})();Run Code Online (Sandbox Code Playgroud)
<button onclick="initialize_events('Test Result');">Send Result</button>Run Code Online (Sandbox Code Playgroud)
如何通过单击按钮从html运行'initialize_events'函数?
我无权访问编辑JavaScript文件.
T.J*_*der 13
我没有权限编辑js文件.
然后你不能,完全停下来.对于包含它的匿名IIFE*来说,它是完全私密的.您必须将其公开为全局,以便将其与onxyz-attribute样式的事件处理程序一起使用(这需要修改JavaScript代码).这是不使用它们的众多原因之一.
由于你不能在不修改JavaScript的情况下做到这一点,我将假设你克服了这个限制并建议在/如果你可以修改JavaScript 时该怎么做:
让IIFE挂钩按钮,data-*如果您需要特定于按钮的信息来传递它,请使用属性:
var cr = {};
cr.plugins_ = {};
cr.runtime = null;
cr.plugins_.Vinoos_Markets = function(runtime) {
this.runtime = runtime;
};
(function() {
function initialize_events(result) {
alert(result);
}
document.getElementById("send-result").addEventListener("click", function() {
initialize_events(this.getAttribute("data-result"));
}, false);
}());Run Code Online (Sandbox Code Playgroud)
<button id="send-result" data-result="Test Result">Send Result</button>Run Code Online (Sandbox Code Playgroud)
笔记:
addEventListener(例如IE8,这对许多人来说仍然是一个遗憾的要求),请参阅此答案以获取跨浏览器事件挂钩功能.data-*属性.getElementById只是一个例子; 在实践中,任何让你识别按钮的东西都是你需要的.您可以通过使用完整的CSS选择器进行查找document.querySelector.*IIFE =立即调用的函数表达式,例如,(function() { /*...*/})();(有时也被称为"内联调用函数表达式".有时也被错误地称为"自调用函数",但它不是;它由定义它的代码调用,不是由功能本身.)