为什么我的HTML代码在Javascript代码之前运行[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我的HTML代码在Javascript代码之前运行[重复]相关的知识,希望对你有一定的参考价值。

我有多个帖子要在单页中显示。我的Java代码动态生成html,并为每个div分配一个数字。

<div onclick="postClicked(" + i + ");" style="cursor: pointer;">

当我点击一个div时,我想去ReadPost.xhtml页面并显示有关点击帖子的详细信息。

function postClicked(id) {  
  localStorage.setItem( 'objectToPass', id );
  location.href = 'ReadPost.xhtml';
}

在ReadPost页面中,我有以下代码:

<h:inputHidden id="postInput" value="#{postManager.clickedPostId};"/> 
 <script>                    
   var myData = localStorage['objectToPass'];
   document.getElementById("postInput").value = myData;
 </script>          

<h:outputText value="#{postManager.displaySinglePost()}" escape="false" />

我想用localStorage中的数据设置隐藏的输入值。这样当displaySinglePost()方法运行时,clickedPostId将会更新,我可以显示具有正确帖子ID的页面。但是,postManager.displaySinglePost()在脚本之前运行。如何在调用postManager.displaySinglePost()方法之前运行脚本?

答案

您可能在dom中的按钮之前注入了javascript。要解决此问题,请在事件中包装您的javascript以确保您的dom已加载:

document.addEventListener("DOMContentLoaded", function(event) { 
Your javascript goes here
 });

以上是关于为什么我的HTML代码在Javascript代码之前运行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 异步操作之回调函数

Javascript设计模式总结之 -- 策略模式

如何修复我的 html/javascript 代码来为精灵表设置动画?

JavaScript之 ------ JavaScript与html的结合方式

HTML 之 Javascript基础

我的javascript代码有啥问题-根据条件(存在另一个元素)删除HTML元素-初学者