JSコードのエラー:Unicaght TypeError:Canot set property'onclick'of null


JSコードにおけるバインディングイベント(JSとHTMLタグを分離した場合)を書くと、次のようなエラーメッセージがあります.
Uncaugt Type Error:Canot set property'onclick'of null
コードは以下の通りです


	
		
		
		<script>
			document.getElementById("btn").onclick=function(){
				document.getElementById("p1").innerHTML="   !";
			}
		</script>
	
	
		<p id="p1">     ,         !</p>
		<input type="button" id="btn" value="click me!"/>
	

</code></pre> 
  <p>          </p> 
  <p>1. JS    <input/>    </p> 
  <p>2.      :</p> 
  <pre><code>

	
		<meta charset="UTF-8"/>
		<title/>
		<script>
			window.onload=function(){
			document.getElementById("btn").onclick=function(){
				document.getElementById("p1").innerHTML="   !";
			}				
			}

		</script>
	
	
		<p id="p1">     ,         !</p>
		<input type="button" id="btn" value="click me!"/>
	

</code></pre> 
  <p><span style="color:#f33b45;">                            ,    html dom        ,   js   ,                ,  js         !</span></p> 
 </div> 
</div>
                            </div>
                        </div>