Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
location.reload(),Javascript,HTML_Javascript_Html_Onclick - Fatal编程技术网

location.reload(),Javascript,HTML

location.reload(),Javascript,HTML,javascript,html,onclick,Javascript,Html,Onclick,当我试图在HTML文件的按钮中使用以下代码时,我总是遇到问题 onClick=window.location.reload(); mapGenerator(); 页面会重新加载,但生成D3JS视图的javascript(mapGenerator)不会出现。我做错了什么?location.reload()将立即重新加载页面并阻止执行任何后续代码 但是,您可以创建一个函数,在页面(重新)加载后执行您的方法: 此方法将在每次页面完全加载时运行。要仅在使用location.reload()重新加载页面

当我试图在HTML文件的按钮中使用以下代码时,我总是遇到问题

onClick=window.location.reload();
mapGenerator();
页面会重新加载,但生成D3JS视图的javascript(mapGenerator)不会出现。我做错了什么?

location.reload()
将立即重新加载页面并阻止执行任何后续代码

但是,您可以创建一个函数,在页面(重新)加载后执行您的方法:

此方法将在每次页面完全加载时运行。要仅在使用
location.reload()
重新加载页面后运行代码,可以创建一个方法,通过设置cookie然后重新加载页面来处理单击

function handleClick() {
    document.cookie="reload=true";
    location.reload();
}
这需要您将onClick值更改为
onClick=“handleClick();”
。现在,无论何时加载页面,都可以检查cookie是否已设置。您的
窗口.onload
功能现在更改为:

window.onload = function() {
    if(document.cookie.indexOf("reload") >= 0) {
        mapGenerator();
    }
}
检查cookie是否存在-

重新加载后,由您决定是否要取消设置cookie-如果不想取消设置,页面将在每次加载页面时运行函数
mapGenerator
,直到cookie过期


如果您需要有关Cookie的更多帮助,请查看。

根据您的描述,单击可执行上述两项操作。当第一个操作重新加载页面时,第二个操作将丢失。如果您希望在加载页面时执行任何操作,请提及页面的相同on onload事件。

当您重新加载页面时,所有代码都会重置,就像您以前从未访问过该页面一样。唯一不同的方法是使用url参数或Cookie,其他任何东西都不会保存到新加载的文件中page@Binvention没有别的了…?:D@Matíasfidemrazier是的,有些东西仍然存在,但代码中没有任何东西可以轻松访问。不是他想要的那种东西一旦你重新加载页面,表达式中的其余JS就不会运行了。@Binvention-orly?:例如,
localStorage
很难使用?请注意,window.onload必须位于新加载的页面中,我该怎么做?因为我只是在点击一个按钮后才使用脚本。@RafaelBispo将该函数添加到JavaScript文件中,它应该可以工作。
function handleClick() {
    document.cookie="reload=true";
    location.reload();
}