IEにこの「NULLまたはオブジェクトではない」というエラーが発生しているのはなぜですか。 -- javascript フィールド と asp.net フィールド と onload フィールド 関連 問題

Why am I getting this “null or not an object” error in IE?












2
vote

問題

日本語

ボタンを持っている(<コード> <asp:button id="MyButton" runat="server" /> )。このボタンを自動的にオンロードするようにしたいです。だから私はそのためにJavaScriptを追加しました:

<事前> <コード> <script language="javascript" type="text/javascript"> var myButton = document.getElementById('myButton'); myButton.click(); </script>

私が取得しているエラーです。

ページこのボタンにあるこのボタンは、後ろにマスターページがあります。これが起きている理由はありますか?

英語

I have a button (<asp:button id="MyButton" runat="server" />). I want this button to be automatically clicked onload. So I added JavaScript for that to happen:

<script language="javascript" type="text/javascript">       var myButton = document.getElementById('myButton');       myButton.click(); </script>  

The error I'm getting is "Microsoft JScript runtime error: 'myButton' is null or not an object"

The page this button is on has a MasterPage in the back. Would that be the reason this is happenening?

</div
        
     
         

回答リスト

2
 
vote

<コード> document.getElementById() は大文字と小文字が区別されます。 <コード> document.getElemenById('MyButton') 。

 

document.getElementById() is case sensitive. Try document.getElemenById('MyButton').

</div
 
 
   
   
2
 
vote

サーバーIDではなくクライアントIDを書き込みます。

<事前> <コード> <script language="javascript" type="text/javascript"> var myButton = document.getElementById('<%=MyButton.ClientID%>'); myButton.click(); </script>

私は、このスクリプトブロックをボタンの後に置く前に、このスクリプトブロックをjQueryまたはそれらを使用している場合は、ドキュメントの準備ができている場合は、このスクリプトブロックをクライアントに配置する必要があるため、このコードは実行されます。文書が完全にロードされたら、次のコードが実行されます。

<事前> <コード> $(document).ready(function () { var myButton = $('#<%=MyButton.ClientID%>'); myButton.click(); });

要件を実装するためにいくつかのプロパティを設定します。

<事前> <コード> rake db:seed 0

<コード> rake db:seed 1 <コード> rake db:seed 2 <コード>を設定すると、ボタンがサーバーに投稿しないことを意味します。 rake db:seed 3 プロパティは、それが聞こえるようにリテラルです。クリックしたら、クライアントが指定されたJavaScriptコードを実行します。

 

You want to write the client ID rather than the server ID.

<script language="javascript" type="text/javascript">       var myButton = document.getElementById('<%=MyButton.ClientID%>');       myButton.click(); </script>  

I see, this code will run before the button is loaded on the client so you will need to place this script block after the button or if you are using jQuery or something similar they will offer document ready functionality. The following code will be run once the document has loaded completely.

$(document).ready(function () {     var myButton = $('#<%=MyButton.ClientID%>');     myButton.click(); }); 

You'll want to set a few properties to implement your requirements.

<asp:button      id="MyButton"      runat="server"      UseSubmitBehavior="false"      OnClientClick="return changeBackgroundColor();" /> 

Setting the UseSubmitBehavior to false means that the button will not post back to the server. The OnClientClick property is as literal as it sounds. When clicked the client will execute the JavaScript code specified.

</div
 
 
         
         
0
 
vote

クライアント側のレンダリングされたHTMLのボタンのIDは何ですか? ASP .NETは、自らの使用のためにより長い自動生成されたクライアント側IDを持つ傾向があります。あなたができることの1つは、 name 属性の属性をJavaScriptで設定します。

あなたに潜在的な使い方の .NETクライアントIDを見つける方法jQuery

を使う
 

What is the Id of the button in the rendered HTML on the client side? ASP .NET has a tendency to have longer auto-generated client-side IDs for its own use. One thing you could do is set the name attribute of the button and reference that in the JavaScript.

Also of potential use to you is a method of finding a .NET client ID using jQuery.

</div
 
 
0
 
vote

ボタンはおそらくクライアントにレンダリングされたときに別のIDを持ちます。ボタンの ClientIDMode="Static" を設定してみてください。その後、IDはサーバー側と同じです。

 

The button probably has another ID when it's rendered to the client. Try to set ClientIDMode="Static" for the button. Then the id will be then same as on the server side.

</div
 
 
0
 
vote

ID = "MyButton"をID = "MyButton"の場合の場合は、JavaScript / DOM

の場合の事項
 

Change the id="MyButton" to id="myButton" case matters in javascript/DOM

</div
 
 
0
 
vote

このコードが実行されたときに 'MyButton'がまだ利用できない場合は、ページに完全にロードされていない可能性があります。これを呼び出す機能をボディロードにする機能を作成できます。

<事前> <コード> <body onload="functionForButton()">

またはボディタグの最後にスクリプトを置く:

<事前> <コード> <script language="javascript" type="text/javascript"> var myButton = document.getElementById('myButton'); myButton.click(); </script> </body>

ケースが同じであることを確認してください。 MyButton!= MyButton

 

The page may not have loaded fully so when this code is executed 'myButton' may not be available yet. You can either make a function that calls this on body load:

<body onload="functionForButton()"> 

or put your script at the end of the body tag:

<script language="javascript" type="text/javascript">       var myButton = document.getElementById('myButton');       myButton.click(); </script>  </body> 

Also make sure the case is the same. MyButton != myButton

</div
 
 
 
 
0
 
vote

スクリプトを変更する:

<事前> <コード> <script language="javascript" type="text/javascript"> var myButton = document.getElementById('<%= myButton.ClientID %>'); myButton.click(); </script>

とこのスクリプトを </body> の直前にページの最後に置きます。

 

Change your script to :

<script language="javascript" type="text/javascript">     var myButton = document.getElementById('<%= myButton.ClientID %>');     myButton.click(); </script> 

And put this script at the end of page just before </body>.

</div
 
 

関連する質問

0  JSFの.xhtmlページを含めた後に同じ方法を呼び出す方法は?  ( How to call the same method after every include of a xhtml page in jsf ) 
.xhtmlページの次の部分を持っています: <事前> <コード> <ui:composition template="./templates/template.xhtml"> <ui:define name="mainContent"> <ui:...

1  anglular.lement iframeのonloadイベントを取得します  ( Get onload event of an angular element iframe ) 
追加されたIFrameでonloadイベントを取得しようとしています。これはサービス関数呼び出し内で起こります。それはファイルをダウンロードすることになっています。しかし、IFrameが約束を返すためにロードされるまで待つ必要があります。 問題のある縮小コード...

1  PageLoadの時間後にDIVの境界線とBGCOLOURのフェードアウト方法は?  ( How to fadeout borders and bgcolour of a div after some time of pageload ) 
このDIV "ABC"をページ負荷に表示したい。その時点で、背景色が黄色になるとします。そして国境は黒になります。しかし数秒後にテキストだけがあります。国境やBGCOLOUR。 <事前> <コード> c(150, 40, 30)5 ...

1  ページロード後のJavaScript実行関数  ( Javascript run function after page load ) 
Operaのユーザースクリプト機能を使用してサイトで実行したいJavaScriptで小さなオートメーションスクリプトを作成しようとしています。この機能を使用して、外部サイトで書いたスクリプトを実行することをお勧めします。 スクリプトを実行するためにページが...

0  Grails Onload()監査  ( Grails onload audit ) 
Grails-Auditプラグインがoncreate()onupdate()イベントをロギングする方法を提供することがわかりますが、Onload()イベントも追跡する必要があります。 任意のプラグインを使用してそれをする標準的な方法はありますか?それとも私...

23  jQueryはどのようにして読み込みをフェードインするために画像を得るのですか?  ( Jquery how do you get an image to fade in on load ) 
私がやりたいのは私のロゴをページのロードにフェードすることです。私は今日のjQueryへの新しいもので、私は荷物でFadeinに管理できません助けてください。すみません、この質問がすでに答えられていたら、私は外観を持っていて、さまざまな質問に対する他の答えを適...

0  JavaScriptボタン選択onload  ( Javascript button selected onload ) 
誰かがページonload.asのボタンを作成する方法を教えてください。 私は凝視でこれをやりたいです。 ありがとう ...

0  jQueryイベント。ロード()動的に作成されたイメージでランダムに発射されていない  ( Jquery event load not firing randomly on dynamicaly created image ) 
OK、そこにコードを投げてからそれを説明したら、それを最もよく考えてください。私は基本的な後に続いて(「ちょっと」)このコードサンプルここで、データを処理するように適応しました。 <事前> <コード> Spring Boot 2.0.0.M61 ** ...

0  JavaScriptを使用して、古いものから新しいウィンドウを開き、後者のInnerHTMLを変更してください。  ( Trying to use javascript to open a new window from an old one and change an inne ) 
JavaScriptを使用して、古いものから新しい文書を理想的に同じウィンドウに開き、後者のInnerHTMLを変更しようとしています。 必要に応じて、2番目の文書が別のウィンドウで開かれた状態で行くことができました。 これはできないと思います... ...

1  新しく作成されたウィンドウにonload()を設定できます。  ( Set onload on a newly created window possible ) 
Safari拡張機能を作成しています。ある時点で、新しいタブ/ウィンドウを開き、その新しいタブのテキストフィールドにテキストを入力します。 これは私が試したものです。 <事前> <コード> Object16 問題は、関数が呼ばれないことです。 デバッグ時に...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有