这是你可以尝试的东西。
首先,您可能需要某种可重用的脚本注入器。下面是一个将 URL 作为参数并加载位于该 URL 的脚本的示例。
function injectScript(src) {
var scriptElement = document.createElement('script');
scriptElement.type = 'text/javascript';
scriptElement.language = 'javascript';
scriptElement.src = src;
document.getElementsByTagName('head')[0].appendChild(scriptElement);
}
接下来,您可能不仅需要启用游戏,还需要启用<div>
要显示游戏的容器。所以这里有一个小帮手,你可以根据自己的喜好定制:
function enableTheGame(containerId, scriptSource) {
var container = document.getElementById(containerId);
if (container) {
container.className = 'enabled'; // can be anything, e.g. style.display='block'
injectScript(scriptSource); // here's our injector
}
}
现在,假设您的按钮有一个 id,让我们为其附加一个启用游戏的事件侦听器。请注意,等待页面完成加载很重要。
window.addEventListener('load', function () {
var button = document.getElementById('SomeButton');
if (button) {
button.addEventListener('click', function () {
enableTheGame('miniclip-game-embed', 'http://www.miniclip.com/js/game-embed.js');
});
}
});
上面的例子可以改进。例如,最后一个函数可以查看按钮的data-...
属性并决定加载哪个脚本以及加载到哪里。