我正在研究2048游戏的问题,这是一个已经移植到Android的webapp:
https://github.com/uberspot/2048-android/issues/15
除了在应用程序中切换样式更改的按钮外,JavaScript似乎无处不在。 JavaScript可以在浏览器中运行,而不是在应用程序中。我认为它归结为nightmode.js中的一些代码开始:
window.onload = function() {
var a = document.getElementById("night");
a.onclick = function() {<<code that toggles day and night colors>>}
有没有人能解决为什么这个JavaScript没有运行?
编辑:当在桌面Chrome浏览器上并且屏幕调整大小时,按钮继续工作。但是,在Chrome中切换设备模式会发现这件事对移动设备无效。由于即使没有WebView也会发生这种情况,现在看起来只是一个javascript问题。
答案 0 :(得分:1)
加载所有时会触发onload
事件。这可能需要一些时间。
另外,window.onload
可能会在以后被覆盖......
你可以试试这个:
var ready = function ( fn ) {
// Sanity check
if ( typeof fn !== 'function' ) return;
// If document is already loaded, run method
if ( document.readyState === 'complete' ) {
return fn();
}
// Otherwise, wait until document is loaded
// The document has finished loading and the document has been parsed but sub-resources such as images, stylesheets and frames are still loading. The state indicates that the DOMContentLoaded event has been fired.
document.addEventListener( 'interactive', fn, false );
// Alternative: The document and all sub-resources have finished loading. The state indicates that the load event has been fired.
// document.addEventListener( 'complete', fn, false );
};
// Example
ready(function() {
// Do night-mode stuff...
});
请参阅:http://gomakethings.com/a-native-javascript-equivalent-of-jquerys-ready-method/