首页 > 解决方案 > setTimeout 函数是否以某种方式与使用在网页上运行 JavaScript 的 iOS 快捷方式一起工作?

问题描述

我正在尝试使用在网页上运行 JavaScript 在连接到其 WiFi 时配置路由器在我的 iPad 上创建 iOS 快捷方式。当我在执行快捷方式之前选择路由器配置网页的特定部分时,这些功能会单独工作。但我需要的是通过在一个脚本中执行所有功能来更改路由器的设置。当我调用 192.168.0.1 时,第一个函数用于登录,下一个函数用于更改网络选项,下一个用于更改安全选项等。为此,我显然需要 setTimeout() 有时间选择不同的页面菜单。出于某种原因,setTimeout() 在 Safari 中的 iOS 上并不真正起作用。这似乎是一个已知问题,但我找不到当前 iOS 版本的任何解决方案或解决方法。

我在如下条件下尝试了 setTimeout()、setInterval() 和函数的执行:

var starttime = 0;
var now = new Date().getTime();
if((now - starttime) > 2000) {...}

这是一个代码片段:

function defaultLogin(){
document.getElementByID('username').value = 'admin';
document.getElementByID('pcPassword').value = 'admin';
}

function clickBtn(){
document.getElementByID('loginBtn').click();
}

function changeLoginData{
window.frames['frame1'].contentDocument.documentElement.getElementsByClassName('T plus')[9].firstElementChildclick();

...
}

defaultLogin();
clickBtn();
setTimeout(changeLoginData, 1000);

completion();

我没有收到任何错误,但函数 changeLoginData() 似乎在登录之前执行,这显然是没有意义的,因为在那个阶段还没有加载元素 ('T plus')[9]。

我错过了什么?

先感谢您!任何帮助深表感谢。

标签: javascriptiossettimeoutdelayshortcut

解决方案


推荐阅读