如何在blogspot(动态主题)中加载java脚本

问题描述 投票:0回答:2

我想在我的 blogspot 中加载这个 java 脚本,但我无法找到如何使用 blogspot 中的 onload 事件加载。

<!DOCTYPE html>
<html>

    <body onload="loadSelector()">
        <form>  
            <select id="selectElementId"></select>
            <script>
                function loadSelector()
                {
                    var min = 2012,
                    max = 2021,
                    select = document.getElementById('selectElementId');

                    for (var i = min; i<=max; i++){
                        var opt = document.createElement('option');
                        opt.value = i;
                        opt.innerHTML = i;
                        select.appendChild(opt);
                    }

                    select.value = new Date().getFullYear();
                }



            </script>

        </form>

        <button class="btn " id="check" type="button"><span    class="check"></span> Check</button>

    </body>
</html>

知道如何在 blogspot 中使用 onload 事件

PS:上面的 html 脚本工作正常,我只需要它在 blogspot 中工作

javascript load blogger blogspot
2个回答
0
投票

window.onload 每次加载页面时都会执行。只需将您的代码添加到其中即可正常工作。在将其保存到模板之前,不要忘记解析它。

<script type="text/javascript">
window.onload = function() {
  alert('HELLO THERE !!); // Remove this. Just for checking if onload is working or not
  // Add your Code here

}
</script>

试试这个

<script type="text/javascript">
function show()
    {
    alert("show alert");
    }
    </script>
</head>
<body onload="show()">
</body>

0
投票

如果您仔细查看

blogger
对象,您会发现一个
addListener()
函数,它支持将回调绑定到名为
'updated'
的事件。

每当显示文章时,

'updated'
事件似乎都会可靠地触发。然而,该事件是“未记录的”,不幸的是在所有“动态”主题 DOM 操作完成之前就被触发了。使用该事件可以减少不确定性,但您可能仍然需要解决 setTimeout() 延迟问题。 一个不太完美的解决方案:
const onArticleLoad = () => {
   const h1 = globalThis.document.querySelector('h1.entry-title');
   console.log('Article title:', h1.textContent.trim());
   };
globalThis.blogger.ui().addListener('updated', () =>
   globalThis.setTimeout(onArticleLoad, 1000));

© www.soinside.com 2019 - 2024. All rights reserved.