- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在两个 html 页面之间来回 - 在我的示例中 Page1 和 Page 2。当我从第 2 页移回第 2 页时,我 < strong>想要触发一个rebuild-my-html类型函数 - 类似于触发“onload”的方式。当然,Onload 仅在应用程序重新启动/重新加载时才会触发。
我不确定在转到第 2 页之前是否需要执行某些操作(由用户触发的事件),或者是否有一个基本功能可以保留在第 1 页。
我确信这是基本的,但我就是找不到它!我一直在网上搜索与 onload 相关的 DOM 事件。
基本应用程序结构
onload函数执行
function initLoad()
它是由
触发的 document.addEventListener('readystatechange', function()
(在实际应用程序中,我使用 javascript onload 函数动态布局一些 html)
(在实际应用中,用户可以做出选择来指示他们希望在第 2 页上看到的详细信息)
第 2 页运行 onload 函数
function init()
(在实际应用中,用户还会发起一些其他事件)
用户事件将应用返回到第 1 页 - 我正在使用
history.go(-1);
因为这是我知道的唯一方法
返回第 1 页后,我希望应用程序返回以运行重建刷新类型功能
在使用该应用程序的过程中,我希望该应用程序不断地从第 1 页到第 2 页来回移动,从而触发两个网页上的刷新功能
(在我的真实应用程序中,用户正在测试自己的内存能力。他们在第 1 页和第 2 页之间来回切换。第 1 页每次都会以新的方式显示信息,以指示用户在第 1 页中已展示的知识的内容2)
示例代码
第 1 页代码 STACKexamplePage1Refresh.html
<!DOCTYPE html>
<html>
<body onunload="OnUnload()">
</script>
<script src="STACKExampleRebuild.js"></script>
<h1> Page 1 </h1>
<p id = changeMe>Want html info like this to be changed upon return from Page 2 and execution of rebuildExamplePage1 function</p>
<button onclick="callAnothePage()">Go to Page 2</button>
<script>
</script>
<script>
function initLoad() {
alert("Page 1 is loaded");
console.log ("Page 1 is loaded");
}
function OnUnload() { // this does not seem to happen
alert("Page 1 is UNloaded");
}
document.addEventListener('readystatechange', function() {
// http://stackoverflow.com/questions/14207922/javascript-error-null-is-not-an-object
if (document.readyState === "complete") {
initLoad();
}// end if
}); // end function
window.onload = function() { // this is just another way of testing initLoad - it runs too
alert("*Page 1 is REloaded*");
}
function callAnothePage()
{
window.location = "STACKexamplePage2Refresh.html"; //
}
</script>
</body>
</html>
第 2 页代码 STACKexamplePage2Refresh.html
<!DOCTYPE html>
<html>
<body onload="init()">
<script src="STACKExampleRebuild.js"></script>
<h1> Page 2 </h1>
<button onclick="historyBack()">Return To Learn Page</button>
<script>
function init() {
alert("init function executed , Page 2 is loaded");
console.log ("init function executed , Page 2 is loaded");
}
function historyBack() {
history.go(-1);
rebuildExamplePage1(); // this function is in STACKExampleRebuild.js
//navigator.app.backHistory(); // tried this too .... 1.15.17
}
</script>
</body>
</html>
示例代码:Java 脚本 STACKExampleRebuild.js
function rebuildExamplePage1(){
alert("rebuildExamplePage1 function execute .... function that will allow for Page 1 rebuild executed");
console.log ("rebuildExamplePage1 function execute .... function that will allow for Page 1 rebuild executed");
/*
var changePage1Info = "This info changed while on page 2";
document.getElementById("changeMe").innerHTML = changePage1Info;
*/
}
当我运行rebuildExamplePage1函数,并尝试运行注释掉的部分时 - 更改html id“changeMe” - 回到第1页 -
在引用changeMe对象时,我得到了一个典型的错误:“null不是一个对象”
我认为这是因为 javascript 函数无法访问第 1 页上的 html,而它位于第 2 页上。尽管我希望将命令放在历史命令之后可能会起作用。
我真正想要的是每当用户返回 html 页面时就会触发的某种函数 - 刷新/重入类型函数
我敢打赌,有一些我无法找到的特殊函数,它将在返回 html 时执行 - 就像我第一次加载页面时的 onload 一样。
一些我尝试过但不起作用的事情
第 1 页的 onUnload 函数绝对不会在任何时候执行 - 我认为这对于这个示例来说无论如何都没有意义
我发现了各种使用持久数据的示例,将内容传递到其他页面,但它们似乎总是尚未加载的页面。我已经在 onload 类型函数中使用了持久数据 - 但它们仅在第一次加载页面时发生,而不是在返回时发生
我需要能够从第 1 页到第 2 页来回移动
我第二次返回第 2 页时会遇到同样的问题。在我的真实应用程序中,我每次都会在第 2 页上显示不同的详细信息
最佳答案
将 ID 添加到每个 html 页面的 body 标记,然后设置一个条件来查看 body 是否在“加载”时具有第 2 页 ID(我知道它是readystatechange,但我无法在 jsfiddle 中重新创建它)。
var page2 = document.getElementById('page-2');
if (page2 !== null) {
alert('page 2 has been loaded');
} else {
alert('page 2 has not been loaded')
}
<body id="page-2">
</body>
关于javascript - 返回HTML5页面时如何触发函数? (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41838913/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
在编码时,我问了自己这个问题: 这样更快吗: if(false) return true; else return false; 比这个? if(false) return true; return
如何在逻辑条件下进行“返回”? 在这样的情况下这会很有用 checkConfig() || return false; var iNeedThis=doSomething() || return fa
这是我的正则表达式 demo 如问题所述: 如果第一个数字是 1 则返回 1 但如果是 145 则返回 145 但如果是 133 则返回 133 样本数据a: K'8134567 K'81345678
在代码高尔夫问答部分查看谜题和答案时,我遇到了 this solution返回 1 的最长和最晦涩的方法 引用答案, int foo(void) { return! 0; } int bar(
我想在下面返回 JSON。 { "name": "jackie" } postman 给我错误。说明 Unexpected 'n' 这里是 Spring Boot 的新手。 1日龄。有没有正确的方法来
只要“is”返回 True,“==”不应该返回 True 吗? In [101]: np.NAN is np.nan is np.NaN Out[101]: True In [102]: np.NAN
我需要获取所有在 6 号或 7 号房间或根本不在任何房间的学生的详细信息。如果他们在其他房间,简单地说,我不希望有那个记录。 我的架构是: students(roll_no, name,class,.
我有一个表单,我将它发送到 php 以通过 ajax 插入到 mysql 数据库中。一切顺利,php 返回 "true" 值,但在 ajax 中它显示 false 消息。 在这里你可以查看php代码:
我在 Kotlin 中遇到了一个非常奇怪的无法解释的值比较问题,以下代码打印 假 data class Foo ( val a: Byte ) fun main() { val NUM
请注意,这并非特定于 Protractor。问题在于 Angular 2 的内置 Testability service Protractor 碰巧使用。 Protractor 调用 Testabil
在调试窗口中,以下表达式均返回 1。 Application.WorksheetFunction.CountA(Cells(4 + (i - 1) * rows_per_record, 28) & "
我在本地使用 jsonplaceholder ( http://jsonplaceholder.typicode.com/)。我正在通过 extjs rest 代理测试我的 GET 和 POST 调用
这是 Postman 为成功调用我的页面而提供的(修改后的)代码段。 var client = new RestClient("http://sub.example.com/wp-json/wp/v2
这个问题在这里已经有了答案: What to do with mysqli problems? Errors like mysqli_fetch_array(): Argument #1 must
我想我对 C 命令行参数有点生疏。我查看了我的一些旧代码,但无论这个版本是什么,都会出现段错误。 运行方式是 ./foo -n num(其中 num 是用户在命令行中输入的数字) 但不知何故它不起作用
我已经编写了一个类来处理命名管道连接,如果我创建了一个实例,关闭它,然后尝试创建另一个实例,调用 CreateFile() 返回 INVALID_HANDLE_VALUE,并且 GetLastErro
即使 is_writable() 返回 true,我也无法写入文件。当然,该文件存在并且显然是可读的。这是代码: $file = "data"; echo file_get_contents($fil
下面代码中的变量 $response 为 NULL,尽管它应该是 SOAP 请求的值。 (潮汐列表)。当我调用 $client->__getLastResponse() 时,我从 SOAP 服务获得了
我一直在网上的不同论坛上搜索答案,但似乎没有与我的情况相符的... 我正在使用 Windows 7,VS2010。 我有一个使用定时器来调用任务栏刷新功能的应用程序。在该任务栏函数中包含对 LoadI
我是一名优秀的程序员,十分优秀!