まず、document.body
とはどのような条件がチェックされていますか?ボディータグが存在するかどうかですか?次に、eval()
パラメータには何が起こっていますか?リストからの値が最終的にはdocument.body.text="deepblue";
(これは廃止されていると思われる)のようにsetBodyAttr
に渡されていることは確かですが、どのようになっていますか?このjavascript関数では何が起こっていますか?
リストに気づいた場合は、setBodyAttr('text', value)
と''
、text
のような属性が渡されています。その後、eval()
と別の''
で連結されます。一方、値は''
で渡されませんが、''
と連結されます。""
です。例えば、eval()
といったら何をして、document.body.text="darkblue";
を生産するのですか?
<html>
<head>
<title>DOM Tests</title>
<script type="application/javascript">
function setBodyAttr(attr,value){
if (document.body) eval('document.body.'+attr+'="'+value+'"');
else notSupported();
}
</script>
</head>
<body>
<div style="margin: .5in; height: 400;">
<p><b><tt>text</tt>color</b></p>
<form>
<select onChange="setBodyAttr('text',
this.options[this.selectedIndex].value);">
<option value="black">black
<option value="darkblue">darkblue
</select>
<p><b><tt>bgColor</tt></b></p>
<select onChange="setBodyAttr('bgColor',
this.options[this.selectedIndex].value);">
<option value="white">white
<option value="lightgrey">gray
</select>
<p><b><tt>link</tt></b></p>
<select onChange="setBodyAttr('link',
this.options[this.selectedIndex].value);">
<option value="blue">blue
<option value="green">green
</select> <small>
<a href="http://www.brownhen.com/dom_api_top.html" id="sample">
(sample link)</a></small><br>
</form>
<form>
<input type="button" value="version" onclick="ver()" />
</form>
</div>
</body>
</html>
'(document.body)場合 - ブラウザDOM *は任意*真理-Yの値を返す場合。 [document.body](https://developer.mozilla.org/en-US/docs/Web/API/Document/body)を参照してください。 evalは非常に危険なものであり、 'document.body [attr] = value'として書かれていなければなりません。 – user2864740
@ user2864740 - "任意の値を返します"、いいえ、真の値でなければなりません。 – Quentin