我在iOS智能应用横幅上遇到了一些麻烦,我正试图通过JavaScript添加它.
实际的smartbanner就像将这个小块添加到HTML的头部一样简单:
<meta name="apple-itunes-app" content="app-id=1008622954">
Run Code Online (Sandbox Code Playgroud)
不幸的是,我对上传脚本的方式非常有限.我无法直接更改HTML,因此我将通过我们的标记管理器来完成,它基本上是通过JavaScript完成的.但事实证明这不起作用.
我试图简化测试的情况:
HTML中的硬编码标签:有效(如预期的那样)
<meta name="apple-itunes-app" content="app-id=1008622954">
Run Code Online (Sandbox Code Playgroud)在文档准备就绪时直接插入JavaScript:有效
$(document).ready(function(){
$("head").append('<meta name="apple-itunes-app" content="app-id=1008622954">');
});
Run Code Online (Sandbox Code Playgroud)插入JavaScript后,setTimeout延迟:不工作
$(document).ready(function(){
setTimeout(showBanner, 1); //after 1 millisecond
});
function showBanner(){
$("head").append('<meta name="apple-itunes-app" content="app-id=1008622954">');
}
Run Code Online (Sandbox Code Playgroud)任何人都可以确认或解释为什么这个延迟的JavaScript不起作用?
重要提示:测试在实际的iOS设备上打开页面!桌面Safari/Chrome或iOS模拟器无法使用.此外,请勿关闭横幅,因为它不会再次出现.
更新:
我添加了一些没有jQuery的例子,所以简单的'ol JavaScript.但结果是一样的.一旦我们等待setTimeout()智能应用程序横幅无法加载.
Vanilla JavaScript - 直接执行.作品
showBanner();
function showBanner() {
var meta = document.createElement("meta");
meta.name = "apple-itunes-app";
meta.content = "app-id=1008622954";
document.head.appendChild(meta);
}
Run Code Online (Sandbox Code Playgroud)Vanilla JavaScript - 延迟执行.什么都不行
setTimeout(showBanner, 1);
function showBanner() { …Run Code Online (Sandbox Code Playgroud)