有如下一段代码:
<table id = "tabTable" width="98%" border="0" align="center" cellpadding="0" cellspacing="0" class="list_table">
<tr>
<td>
<div id="tabArea" style="border:0px" overflow:scroll>
<ul>
<li>
<a id="start" style="cursor:hand;" href="#space" οnclick="loadPage(event);" link="<%=request.getContextPath()%>/ticketworklog/worklog_ticketOperationLog.action?timeZoneId=<s:property value='timeZoneId'/>&refreshIframe=true"><s:text name="sdm.log.tabname.ticketoperation" /></a>
</li>
<li>
<a style="cursor:hand;" href="#space" οnclick="loadPage(event);" link="<%=request.getAttribute("address")%>/excelScript/importHistoryRecord.jsp?refreshIframe=true"><s:text name="sdm.log.tabname.excel"/></a>
</li>
<li>
<a style="cursor:hand;" href="#space" οnclick="loadPage(event);" link="<%=request.getAttribute("address")%>/emailScript/interfaceEmailList.jsp?refreshIframe=true"><s:text name="sdm.log.tabname.crapproval"/></a>
</li>
</ul>
<div id="space" style="padding:0;"></div>
</div>
</td>
</tr>
</table>
现在我在loadPage(event)中根据传来的link值,决定tab页签的展示对象:
function loadPage(event){
var sUrl = (event.srcElement==null)?$("#start").attr("link"):event.srcElement.link;
iframePage.attr("src",sUrl);
}
这段代码在IE8中运行无碍,但是IE11和Chrome中,event.srcElement.link这个值变成了undefined
好像是IE11不支持这种写法。这时候解决方法也很简单:
function loadPage(event){
var sUrl = (event.srcElement==null)?$("#start").attr("link"):event.srcElement.getAttribute("link");
iframePage.attr("src",sUrl);
}
event.srcElement.getAttribute("link") 直接获取属性值的方法改为 getAttribute()
就这样就OK了,经测试,IE8、IE9、IE11、Chrome都没问题