29

次のスニペットでは、すべてが期待どおりに機能しますが、[ソースの表示]をクリックすると、Firefoxで次のエラーが発生します。

- 
[11:07:30.630] TypeError:document.getElementbyIdは関数ではありません@ http:// localhost:8888 / html5 / native-rich-text.html:10

また、Safariでも同様のエラーが発生します。これを引き起こしているのは何ですか?

function showSource() {
  var content = document.getElementbyId("edit").innerHTML
  content.replace(/</g, '&lt;');
  content.replace(/>/, '&gt: ');
  prompt("Your Code:", content);

}

function createLink() {
  var url = prompt("Enter URL:", "http://");
  if (url)
    document.execCommand("createlink", false, url);
}
<h1>Native Rich Text</h1>
<p>No textboxes here, that's a &lt;div&gt; element!</p>
<div>
  <input type="button" value="Bold" onclick="document.execCommand('bold', false, null);">
  <input type="button" value="Italic" onclick="document.execCommand('italic', false, null);">
  <input type="button" value="Underline" onclick="document.execCommand('underline', false, null);">
  <input type="button" value="Add Link" onclick="createLink();">
  <input type="button" value="Show Source" onclick="showSource();">
</div>
<div id="edit" style="border:solid black; height: 300px; width: 400px;" contenteditable="true">
  Hello!
</div>

4

2 に答える 2

63

大文字と小文字の区別: document.getElementById(大文字に注意してBください)。

于 2013-01-05T11:17:41.490 に答える
15

JavaScriptでは大文字と小文字が区別されます。bingetElementbyIdは大文字にする必要があります。

var content = document.getElementById("edit").innerHTML;
于 2013-01-05T11:17:41.213 に答える