当容器被隐藏时,防止java小程序被破坏
Prevent java applet from being destroyed when container is hidden
我有一堆ifdiv,每个div都包含一些文本、一个java小程序(是的…)和一些按钮;现在我正在实现一个搜索函数,它可以动态地显示和隐藏这些DIV,但每当我将display:none设置为DIV时,其中的applet就会立即被销毁,就像它是从html代码中删除的一样,然后在再次显示DIV时重新创建。有办法防止这种情况发生吗?
有办法防止这种情况发生吗?
不要调用div
元素上的display: none
。请尝试visibility:hidden;
,或者应用将小程序从可见页面上移开的样式。像这样的东西1:
<html>
<head>
<title>Removing elements from view</title>
<style type='text/css'>
.plain {
}
.removed {
position: absolute;
left: -1200px;
top: -1200px;
}
</style>
<script type='text/javascript'>
function show() {
document.getElementById('target').className='plain';
}
function hide() {
document.getElementById('target').className='removed';
}
var count=0;
function increment() {
count++;
document.getElementById('output').value=count;
}
window.setInterval(function(){increment()}, 1000);
</script>
</head>
<body>
<h1>Move the element off page</h1>
<input type='button' value='Hide' onclick='hide();'>
<div id='target' style='background-color:#F00;'>
<input id='output' type='text' size='4'>
</div>
<input type='button' value='Show' onclick='show();'>
</body>
</html>
- 在FF中测试,但未验证
也许不幸的是,您所描述的行为正是当今浏览器的行为。
你仍然可以隐藏小程序,但不能通过隐藏它的父分区来实现
首先,您必须将web UI元素放在与小程序的div分开的div中。您可以根据自己的描述隐藏web UI元素(设置"display:none")。但是要隐藏Java小程序,您可以在小程序元素上设置样式"width:0px;height:0px"。
设置小程序样式的宽度和高度很重要,而不是设置小程序的宽度和高度属性。
一个隐藏的小程序元素如下所示:
<applet id="myHidableApplet"
width="600px" height="400px"
style="width: 0px; height: 0px;">
注意
nbsp;-小程序的样式指定"width: 0px height: 0px"
,而
nbsp;-小程序的属性指定CCD_ 5。
一个可见的组可能看起来像这样:
<div id="group1">
<applet id="group1applet"
width="600px" height="400px"
style="width: 600px; height: 400px;"> <!-- visible -->
<param> etc... </param>
</applet>
<div id="group1ui" style="display: block"> <!-- visible -->
<input name="Name" type="text" />
</div>
</div>
当你隐藏群组时,你必须将其转换为这样的东西:
<div id="group1">
<applet id="group1applet"
width="600px" height="400px"
style="width: 0px; height: 0px;"> <!-- hidden -->
<param> etc... </param>
</applet>
<div id="group1ui" style="display: none"> <!-- hidden -->
<input name="Name" type="text" />
</div>
</div>
在试图找到一种部署完全隐藏的小程序的方法时,我发现了width和height元素属性与width和high样式属性 需要牢记的事项:
根据您的网站布局,您可以使用一些简单的css将iframe放置在小程序的顶部,并将颜色设置为任何背景。http://jsfiddle.net/tQL93/3/
<iframe id="iframe_shim" class="iframe_shim" frameBorder="0">
</iframe>
<div class='applet'>
</div>
<button id='hideBtn' type="button" title="Hide Applet" style="width:100px;"
onclick="hideApplet();">Hide</button>
function hideApplet(){
var el = document.getElementById('hideBtn');
if (el.innerHTML == 'Hide'){
el.innerHTML = 'Show'
document.getElementById('iframe_shim').style.display = 'block'
} else {
el.innerHTML = 'Hide'
document.getElementById('iframe_shim').style.display = 'none'
}
}
- 如何在不同的java程序中捕获JS可变值
- 如何使用Java程序在浏览器中操作文本字段
- 如何在Java程序中读取JavaScript输出文本
- Java 程序文本文件问题
- 在java程序中执行phantomjs脚本
- 如何在Java程序中包含JavaScript文件
- 使用 JavaScript 可视化 Java 程序
- 在网站中添加基本Java程序
- java程序可以作为网页javascript和数据库之间的中介吗
- 如何将java程序连接到JSP页面
- 如何通过web界面更改java程序的变量值
- 从java程序执行java脚本中的phantom.exit()
- 用于简单java程序的Javascript包装器
- 对脚本提取的建议用java程序标记java脚本
- nodejs fs.openSync()带有'a'Java程序运行失败
- 如何请求用户输入文件位置,以便在Eclipse(Java)程序中使用和读取它
- 将JSON数据从JavaScript发送到服务器上的Java程序
- 我的Java程序将如何处理JS文件来提取函数名
- 在哪里安装 Java 程序中使用的导入模块
- 如何在云计算中实现Java程序?