Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Javascript 如何在提交后关闭colorbox窗口,并刷新父页面上的图像?_Javascript_Colorbox - Fatal编程技术网

Javascript 如何在提交后关闭colorbox窗口,并刷新父页面上的图像?

Javascript 如何在提交后关闭colorbox窗口,并刷新父页面上的图像?,javascript,colorbox,Javascript,Colorbox,我使用colorbox进行模式显示,当用户单击图像进行更新时,它会为用户打开。一旦用户上传新图像并点击colorbox模式上的submit,该模式应关闭并刷新父页面上的图像 我正在submit按钮中使用以下onClick事件: <input onClick='window.parent.location.reload(true);' type='submit' value='Submit' name='save_button' id='save_button'> 有什么想法吗?

我使用colorbox进行模式显示,当用户单击图像进行更新时,它会为用户打开。一旦用户上传新图像并点击colorbox模式上的submit,该模式应关闭并刷新父页面上的图像

我正在submit按钮中使用以下onClick事件:

  <input onClick='window.parent.location.reload(true);' type='submit' value='Submit' name='save_button' id='save_button'>

有什么想法吗?

很可能图像缓存在浏览器中,给图像控件一个ID并调用
window.parent.document.getElementID(“图像”).src+=“?”+[一些随机数,或者可能是毫秒]这将导致它返回服务器并重新加载映像

编辑

更加充实的脚本:

<script language="javascript" type="text/javascript">
  function onSubmitClick(){
    parent.jQuery("#img")[0].src += "?" + Math.floor(Math.random()*1001);
    //note the above will append a random number between 0 and 1000 to the src.
    parent.jQuery.colorbox.close()
  }
</script>

<input onClick='onSubmitClick();' type='submit' value='Submit' name='save_button' id='save_button'>
<img src="pic.jpg" id="img">

函数onSubmitClick(){
parent.jQuery(“#img”)[0].src+=“?”+Math.floor(Math.random()*1001);
//注:上面将向src添加一个介于0和1000之间的随机数。
parent.jQuery.colorbox.close()
}

我还意识到我的建议的一个缺陷是,当页面被重新加载时,它只会再次从缓存中加载相同的图像。因此,编写此脚本时不会进行页面刷新。

浏览器会创建一个缓存,以便更快地浏览。如果页面刷新后图像src[location]相同,浏览器会显示图像的上一个副本。每次重新加载时,您必须更改image src属性的目标,或者通过函数执行相同的操作,如下所示:

$('img').each(function(){
$(this).attr('src',$(this).attr('src')+Datetime.now());
});

下面是特定于colorbox脚本的代码,它最终为我工作。我在下面脚本的最后一部分添加了
onClosed:function(){location.reload(true);}

<script>jQuery.noConflict();
  jQuery(document).ready(function(){
  jQuery("iframe").hide();
  });

  $('input').hide();
</script>

<script>
  jQuery(document).ready(function(){
  jQuery(".iframe").colorbox({iframe:true, width:"748px", height:"92%", onClosed:function(){ location.reload(true); } });
  });
</script>
jQuery.noConflict();
jQuery(文档).ready(函数(){
jQuery(“iframe”).hide();
});
$('input').hide();
jQuery(文档).ready(函数(){
颜色框({iframe:true,宽度:“748px”,高度:“92%”,onClosed:function(){location.reload(true);}});
});
然后我在submit按钮代码中添加了onClick事件:

<input type='submit' value="Submit' onClick='parent.jQuery.fn.colorbox.close();'>

如果在Cntrl+F5之后显示,则浏览器捕获问题CTRL+F5确实会随页面一起刷新图像。但浏览器的“重新加载”(FireFox)功能也是如此。当onClick事件重新加载整个页面时,为什么不重新加载图像?浏览器会创建一个捕获,以便更快地浏览。如果在页面刷新后,图像src[location]是相同的,我认为您是javascript新手,我想您是想在父页面的标记中包含上述脚本,对吗?如果是这样,我试过了,但没有成功。这个答案取决于您是否使用jQuery以及是否具有非本机DateTime对象。它与vanilla javaScript不兼容。jQuery位于父页面上。我想您是想在父页面上包含脚本。我做了,但没有成功。我是javascript的新手。这段代码是否意味着在onClick事件中使用submit按钮进入标记?或者我应该把它放在标签内的父页面上?我尝试了这两种方法,但都不起作用。将输入更改为
,然后编写一个函数
函数iptOnClick(){window.parent.location.reload(true);window.parent.document.getElementID(“image”).src+=“?”+[一些随机数,或者毫秒];}
因此,当您单击提交按钮刷新页面时,它将作为函数同时启动,就像
onClick='window.parent.location.reload(true);'。但它不会刷新图像。当我使用浏览器的重新加载功能时,会出现新图像,但是好的,图像元素的id是多少?我将在脚本中详细说明。请参见编辑。我还意识到刷新只是再次从缓存中加载图像,除了更新图像之外,您刷新页面还有其他原因吗?
<input type='submit' value="Submit' onClick='parent.jQuery.fn.colorbox.close();'>