You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在页面加载时将player-id追加到输入字段中?

实现页面加载时自动追加OneSignal玩家ID到输入框

这事儿其实挺简单的,我们只需要让你现有的getOneSignalToken函数在页面加载完成后自动触发就行。结合你已经在用jQuery的情况,我给你两种靠谱的实现方式:

方法一:用原生JS的DOMContentLoaded事件

这个事件会在页面的DOM结构完全解析加载完成后触发,能确保我们的输入框已经存在,不会出现找不到元素的问题:

<input type="text" id="player-id" readonly />
<a id="get_onesignal_token" class="btn btn-primary" onClick="getOneSignalToken()">获取OneSignal玩家ID</a>
<script type="text/javascript">
function getOneSignalToken() {
    // 获取玩家ID并追加到输入框
    const playerId = android.getOneSignalRegisteredId();
    $('#player-id').val($('#player-id').val() + playerId);
};

// 页面加载完成后自动执行函数
document.addEventListener('DOMContentLoaded', function() {
    getOneSignalToken();
});
</script>

方法二:用jQuery的ready事件

既然你已经在使用jQuery操作DOM,这种方式会更贴合你的现有代码风格:

<input type="text" id="player-id" readonly />
<a id="get_onesignal_token" class="btn btn-primary" onClick="getOneSignalToken()">获取OneSignal玩家ID</a>
<script type="text/javascript">
function getOneSignalToken() {
    const playerId = android.getOneSignalRegisteredId();
    $('#player-id').val($('#player-id').val() + playerId);
};

// jQuery监听页面就绪事件,自动执行函数
$(document).ready(function() {
    getOneSignalToken();
});
</script>

额外提醒

如果android.getOneSignalRegisteredId()需要等OneSignal SDK初始化完成才能返回有效的玩家ID,那你可能需要结合OneSignal的初始化回调来触发函数(比如OneSignal.push(function() { ... })),不过从你现有的按钮触发逻辑来看,应该页面加载时这个方法已经能拿到正确值了,上面的两种方式就足够用。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:04:35