【发布时间】:2018-04-17 19:52:46
【问题描述】:
大家好,我需要一点帮助。 所以我的页面上隐藏了模式框,当我使用视频平台 VERSE 点击它们时,它们可以完美运行。
我的问题是:如果我想从页面上的常规链接或按钮调用相同的模式框,如何调用它们。
示例如下: http://digitalfeast.com/clients/nccv/ncc-verse.html
这是我的 Javascript 代码:
(function() {
(function() {
window.onload = function() {
var frame = document.getElementsByName("verse-iframe")[0].contentWindow;
// Variables below (i.e. "menu-1") reference div id from your markup
function receiveMessage(event) {
var data = (typeof event.data === "String") ? JSON.parse(event.data) : event
var modalWindow1 = document.getElementById("ruben-1");
var modalWindow2 = document.getElementById("ruben-2");
var modalWindow3 = document.getElementById("menu-3");
var modalWindow4 = document.getElementById("menu-4");
// Variables below (i.e. "menu-1") reference the unique callback names entered for your hotspots in the Verse editor
if (data.data["identifier"] === "ruben-1") {
modalWindow1.style.display = "block";
}
if (data.data["identifier"] === "ruben-2") {
modalWindow2.style.display = "block";
}
if (data.data["identifier"] === "menu-3") {
modalWindow3.style.display = "block";
}
if (data.data["identifier"] === "menu-4") {
modalWindow4.style.display = "block";
}
}
var closeBtns = document.getElementsByClassName("modal-close");
for (var i = 0; i < closeBtns.length; i++) {
var btn = closeBtns[i];
btn.onclick = function (event) {
event.target.parentNode.parentNode.style.display = "none";
frame.postMessage({action: "play"}, "*");
};
}
window.addEventListener('message', receiveMessage);
var frame = document.getElementsByName("verse-iframe")[0].contentWindow;
};
}());
}());
【问题讨论】:
-
双 IIFE 是怎么回事?里面有一个 onload ......在这段代码 sn-p 中,那些 IIFE 没有为你做任何事情。
-
同时重新声明
frame。剪切-粘贴迷你编辑情况? -
嘿,兰迪,你是对的!我将删除双 IIFE,“框架”声明也只是从 SublimeText 中剪切和粘贴。
标签: javascript jquery popup simplemodal