Невозможно использовать атрибуты тега div, передавая объект loadApp() с помощью этого оператора
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<script>
function loadApp(theItem)
{
_thePage = theItem.appname;
alert(_thePage);// displaying undefined value in IE 9 while it works in IE7 and IE8(../eisptool.html)
}
</script>
</head>
в теле есть тег div со следующими атрибутами:
<div class="treeItem" onclick="setGroup('graph');loadApp(this)" fex="GSAS" appname="../eisptool.html" show="domainView calculationRule target" hide="trigger">Summary Graph</div>
Когда я пытаюсь использовать атрибут appname тега div, получаю undefined значение.
Некоторые атрибуты автоматически переходят в свойства браузера, такие как .id
. Но пользовательские атрибуты обычно не превращаются в свойства, поэтому, если вы хотите прочитать пользовательский атрибут во всех браузерах, вам нужно прочитать его с помощью .getAttribute()
.
function loadApp(theItem) {
_thePage = theItem.getAttribute("appname");
alert(_thePage);
}
Конечно, вам действительно нужно использовать спецификацию HTML5 для пользовательских атрибутов и использовать префикс data-
поэтому пользовательский атрибут в вашем HTML будет data-appname="../eisptool.html"
и вы будете использовать getAttribute("data-appname")
.