此onclick功能:
VVi".$row['id'].".onclick = function() {
alert('1');
var ResultI = '".$row['id']."';
location.href='visuals.php?ResultI=' + ResultI + '&pg=' + pgi + '&vid=false';
};
无法在firefox上调用...我在chrome和opera上尝试过,一切正常......所以我怎么能调用一切在所有浏览器上都能正常工作的函数。我需要类似的方法,因为我不希望相关的代码生效...谢谢
编辑:
Firefox结果:
<a class='menuLink' id='VVi19'>
<div id='IIi19' style='width: 230px;
height: 136px;
background: url(res/images/images.jpg);
background-size: contain;
background-repeat: no-repeat;
background-position:center;'></div>
</a>
</td>
<script type='text/javascript'>
VVi19.onclick = function() {
alert('1');
var ResultI = '19';
location.href='visuals.php?ResultI=' + ResultI + '&pg=' + pgi + '&vid=false';
};
</script>
答案 0 :(得分:1)
一个声明为闭包的函数就像你所做的那样是一个赋值语句,因此必须用分号;
终止。
有些ECMAScript引擎比其他人更宽容 - 尝试添加分号,如下所示:
// ...
location.href='visuals.php?ResultI=' + ResultI + '&pg=' + pgi + '&vid=false';
};
// ^ Add this teminator
在检查完整个代码之后, 编辑似乎问题是你的标签订单全部搞砸了,这就是它无法正常工作的原因。除此之外,<script>
元素无效为<table>
的直接子元素,<td>
应包含在<tr>
中。您还在循环中分配静态id=
,这会导致重复的元素ID,并且您似乎使用以其ID命名的对象引用HTML元素,而不将该元素分配给该对象。
尝试更改:
VVi".$row['id'].".onclick = function() {
要:
document.getElementById('VVi".$row['id']."').onclick = function() {
...虽然即使这确实解决了您的问题,但您可能会发现其他不起作用的东西。您需要通过W3C markup validation service传递所有生成的网页,并且还应该看到JSLint对您的Javascript的评论。