下面还有一种方法解决这个问题,而且不用创建一个空的页面。
修改iframe的src属性:
var iframe=document.createElement("<iframe src='javascript:\"\"'>");
运行效果一样。
但在这里我发现有一个有趣的现象。修改代码如下:
var iframe=document.createElement("<iframe src='javascrip:'>");
运行后发现,在firefox下,当运行到上面语句的时候,firefox将会两次弹出错误控制台。很奇怪啊!!!
我们也可以增加form的onsubmit事件来阻止表单自动提交。
<html>
<head>
<title>test</title>
<script language="javascript">
function test(){
document.testForm.submit();
}
</script>
</head>
<body>
<form name="testForm" method="post" action="test.htm" onsubmit="return false;">
<input type='button' value='test' onclick="javascript:test()">
<input type="text" name="textfield" class="input">
</form>
</body>
</html>
其实你的问题,与线程是没有关系的。只不过在删除的时候需要去检查下需要删除的对象是否在数组中存在。
但这里有个问题:
当两个线程A和B同时访问此函数的时候,假设theList.site()为5.优先级高的线程A首先访问访问此函数.线程A删除了一个元素,假设当前索引为2.线程B开始访问此函数,而开始删除索引为2的元素.由于索引2的元素已经被线程A删除了,所以线程B开始访问的删除的时候,会抛出空指针的异常.