これを設定すると、最初に第3のvar
宣言に不正なメソッド呼び出しがあったことに気付かなかった。私が望むようにページが機能し、すべてがうまくいった。JavaScriptがこの壊れたコンポーネントなしで実行されない
後で、検査官にエラーが記録されていることに気付きました。私は不快な行を取り除き、すべてがうまくいくはずですが、スクリプトはもう動作しません。奇妙な。だから、私はそれを修正し、getElementId('close')
を正しいgetElementById('close')
に変更し、スクリプト全体がまだ動作しません。
これは、正常に機能するにはスクリプトに壊れたコンポーネントが必要であることを示します。
これ以上動作しない部分はopenModal()
であることに注意してください。 audio.setAttribute()
とaudio.play()
は同じブロック内にあり、それでも問題なく動作します。 closeFunc()
は自動的にonclickと呼ばれるため、実際には、close
という文字列は必要ありません。
私のhtml:
<div id='myModal' class='modal'>
<div id='modal-content'>
<span onclick='closeFunc()' id='close'>close x</span>
<object id='pdf-enter' data='' type='application/pdf'><p id='fallback-text'>Your browser does not support this media. You can download it <a id='dl-link' href=''>here.</p></a></object>
</div>
</div>
<div class='aud'>
<audio id='paudio' src='../../music/Available Now.mp3' controls='controls' preload="metadata">Your browser does not support the <code>audio</code>element.</audio>
<p id='audio-metadata'></p>
</div>
. . .
<li><a href='#0' class='title'>Sassthefrass <i onclick='audiosass()' class="fa fa-play-circle-o fa-fw" aria-label='Listen to music.'></i> <i onclick='openModal(), sass()' class='fa fa-file-pdf-o fa-fw' aria-label='View the sheet music.'></i></a>
</li>
とJavaScript
<script defer async>
var modal = document.getElementById('myModal');
var here = document.getElementById('dl-link');
var close = document.getElementId('close');
var pdf = document.getElementById('pdf-enter');
function openModal() {
modal.style.display = "block";
}
function sass() {
pdf.setAttribute('data', '../../scores/Sassthefrass Perusal.pdf');
here.setAttribute('href', '../../scores/Sassthefrass Perusal.pdf');
}
function closeFunc() {
modal.style.display = "none";
}
</script>
正しく動作した場合、PDF FAのアイコンをクリックすると楽譜を示すPDFとモーダルを開きます。コードが「エラーフリー」であれば、これはこれ以上行いません。
これは縮小版ですが、全体としてはcortlandmahoney.com/pages/comp/acoustic.htmlでご覧になれます。このサイトはまだ開発中ですが、完了するまでは近いです。
ブラウザコンソールでは何が報告されていますか? – Pointy