为什么关注 javascript 在 Internet Explorer 和 Mozilla 中不工作,但在 google chrome 中工作正常?
Why following javascript is not working in Internet Explorer & Mozilla but works fine in google chrome?
我在 javascript 中获取会话属性,然后在 if-else 中使用它。
脚本假设 运行 每当用户某些锚标记单击锚标记时。
<a id="someId" href="/someurl" onClick="checkSession(this.id)">Link</a>
<a id="someOtherId" href="/someurl" onClick="checkSession(this.id)">Link2</a>
并在体内
<script type="text/javascript">
function checkSomething(clickedId){
event.preventDefault();
var value= <%=(int) session.getAttribute("key")%>;
if(value != -1){
window.location = $('#'+clickedId).attr('href');
}else {
alert("Please Select a value first then click on the link.");
$("#someInput").focus();
}
};
</script>
脚本 运行 在 chrome 上完美运行,但在 mozilla 和 IE 上失败。
在 mozilla 上,我可以看到锚标记已与 javascript 绑定,但它没有 运行.
传入事件而不是 ID。此外,您不需要 jQuery 来获取元素的 href
。只需使用香草 JavaScript:
<a id="someId" href="/someurl" onClick="checkSession(event)">Link</a>
<a id="someOtherId" href="/someurl" onClick="checkSession(event)">Link2</a>
<script>
function checkSession(event) {
event.preventDefault();
var clickedId = event.target.id;
var href = event.target.href;
// etc
}
</script>
或者您可以:
<a id="someId" href="javascript:checkSession('/someurl')">Link</a>
<a id="someOtherId" href="javascript:checkSession('/someOtherurl')">Link2</a>
<script>
function checkSession(url) {
var value= <%=(int) session.getAttribute("key")%>;
if(value != -1){
window.location = url;
} else {
alert("Please Select a value first then click on the link.");
$("#someInput").focus();
}
}
</script>
我在 javascript 中获取会话属性,然后在 if-else 中使用它。 脚本假设 运行 每当用户某些锚标记单击锚标记时。
<a id="someId" href="/someurl" onClick="checkSession(this.id)">Link</a>
<a id="someOtherId" href="/someurl" onClick="checkSession(this.id)">Link2</a>
并在体内
<script type="text/javascript">
function checkSomething(clickedId){
event.preventDefault();
var value= <%=(int) session.getAttribute("key")%>;
if(value != -1){
window.location = $('#'+clickedId).attr('href');
}else {
alert("Please Select a value first then click on the link.");
$("#someInput").focus();
}
};
</script>
脚本 运行 在 chrome 上完美运行,但在 mozilla 和 IE 上失败。 在 mozilla 上,我可以看到锚标记已与 javascript 绑定,但它没有 运行.
传入事件而不是 ID。此外,您不需要 jQuery 来获取元素的 href
。只需使用香草 JavaScript:
<a id="someId" href="/someurl" onClick="checkSession(event)">Link</a>
<a id="someOtherId" href="/someurl" onClick="checkSession(event)">Link2</a>
<script>
function checkSession(event) {
event.preventDefault();
var clickedId = event.target.id;
var href = event.target.href;
// etc
}
</script>
或者您可以:
<a id="someId" href="javascript:checkSession('/someurl')">Link</a>
<a id="someOtherId" href="javascript:checkSession('/someOtherurl')">Link2</a>
<script>
function checkSession(url) {
var value= <%=(int) session.getAttribute("key")%>;
if(value != -1){
window.location = url;
} else {
alert("Please Select a value first then click on the link.");
$("#someInput").focus();
}
}
</script>