IE8で動くログイン画面が、FireFoxでは動かない

このQ&Aのポイント
  • IE8で動作するログイン画面が、FireFoxでは正常に動作しません。
回答を見る
  • ベストアンサー

IE8で動くログイン画面が、FireFoxでは動かない

IE8で動くログイン画面が、FireFoxでは動かない htmlとJavaScriptを別ファイルに記述し、ログイン画面を作成しております。 このhtmlは、テキストボックスに入力されたIDとPASSWORDを、 login.phpに渡しているだけです。 onmouseoverやonmouseoutは正常に動いておりますので、 JavaScriptがOFFと言うオチではないと考えています。 おそらくsubmitがfirefoxでは正常に動いていないのだと考えられますが、 どうすれば解決できるのか、ご教授くださいませ。 Web開発を始めて日が浅く、基本的な事を質問してしまっているかもしれませんが 何卒よろしくお願いします。 ソースはこのような感じです。 【login.html】(テキストボックスとログインボタン周辺のみ) <form action="login.php" name="form_login" method="post"> 社員ID:<INPUT type="text" size="24" name="id_txtbox"> PassWord:<INPUT type="password" size="20" name="password_txtbox"> <br> <!--ログインボタン--> <IMG id="btnlogin" onmouseover="Onmouseoverlogin();" onmouseout="Onmouseoutlogin();" onclick="login(id_txtbox.value,password_txtbox.value);" img src="images/login.gif" width="130" height="27" border="0" name="btnlogin"> </form> 【login.js】(login.htmlで使用するJSを記述しています) // ログインボタンマウスオーバー function Onmouseoverlogin(){  document.btnlogin.src='images/login2.gif'; } // ログインボタンマウスアウト function Onmouseoutlogin(){  document.btnlogin.src='images/login.gif'; } // ログインクリック時 function login(id,pass){  //チェック等省略します。  document.form_login.submit(); }

質問者が選んだベストアンサー

  • ベストアンサー
noname#111181
noname#111181
回答No.1

コンテンツの全体がないので確実なことは言えませんが、ログインボタンの4行目 onclick="login(id_txtbox.value,password_txtbox.value); が間違っています。 文法上、引数にJavaScriptの変数は指定できません。 たまたまIEの場合は正常に動作しているだけでしょう。 ここで引数を渡さないで、関数loginの内部で document.form_login.id_txtbox.valueや document.form_login.password_txtbox.valueを参照しても支障はないかと存じます。

wendy0303
質問者

お礼

i80286さん、お世話になっております。 回答、ありがとうございます。 >引数 う…た、確かにForm内に要素があるのに 引数を渡そうとする必要は何処にもないですね。 そして、事実、引数をなくしたところ、 何の問題もなくSubmitできました。 ありがとうございました。 (他の箇所見るのが怖いです。きっと修正の山…)

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

FFの「ツール」-「エラーコンソール」で見てみればわかりますが、名前指定の引数が識別されていません。 名前.名前方式でなくきちんと指定するか、応急措置としては、以下みたいなのでもいけそう(FF3.5) onclick="login(this.parentNode.id_txtbox.value,this.parentNode.password_txtbox.value);" まぁ、#1様がおっしゃるように、function側できちんと取得するほうが、記述としてもきれいになると思いますけど…  document.forms['form_login'].elements['id_txtbox'] みたいな感じ。

wendy0303
質問者

お礼

fujillinさま、お世話になっております。 >名前方式でなくきちんと指定する 今回問題になっている箇所以外で、どうしても引数を渡したいところがありましたので この書き方は参考にさせて頂きます。 ありがとうございます。

関連するQ&A

  • OCNにVBAでログインしたいのですが

    OCNにVBAでログインしたいのですが うまくできません。 URLは https://login.ocn.ne.jp/auth/s2001/pc/AuthLoginDisplay.action もしくは http://www.ocn.ne.jp/ です。 objIE.Document.all("comid").Value = " tenor.ocn.ne.jp" objIE.Document.all("password").Value = "" ここまではうまくいくのですが、ログインしようと、 objIE.Document.forms(0).submit 'ダメ objIE.Document.all("action:AuthLoginLogin").Checked = True 'ダメ でもダメでした。 ソースは <p class="align-c roll"><input type="image" alt="ログイン" src="common/images/btn_login.gif" id="AuthLoginDisplay_AuthLoginLogin" name="action:AuthLoginLogin" value="Submit" class="button"/> </p></form> なのですが うまくできません。 わかる方ご教授よろしくお願いします。

  • PHP内で作成したHiddenタグが、ソース表示で見えてしまう

    PHP内で作成したHiddenタグが、ソース表示で見えてしまう 熟練者・経験者の皆様にはお世話になっております。 よろしくお願いします。 現在、ログイン画面(html)⇒メニュー画面(php)⇒各画面(php) で構成されるサイトを作成しています。 ログイン画面ではIDとPASSWORD文字列を引数にJavaScriptの関数を実行し、POSTしています。 IDとPASSWORDはメニュー画面のPHP内で受け取り、 問い合わせをして正しければメニュー画面のhtmlを表示し、 正しくなければログインエラーのhtmlが表示されます。(ついでに社員番号やその他の値も取ってます) ですがメニュー画面から各画面へ遷移する際に、ログインIDや、 その他の情報をどうやって渡してやればよいのか判りません。 ログイン画面(html)からメニュー画面(php)へのPOSTと同じ用に メニュー画面もタグのValue(IDやPASSWORD)を引数に JavaScriptでSubmitすれば良いと考えました。 しかしその為にはまずPHTがログイン画面から受け取った値を、 HiddenタグでHtmlに渡してやる必要があります。 ですが、ブラウザで「ソースを表示」としてソースを見ますと、Hiddenタグが見えてしまうのです。 書いているソースは少々はしょりますがこんな感じのものです。 1.login.html <form action="menue.php" name="form_login" method="post"> 社員ID:<INPUT type="text" size="24" name="id_txtbox"> PassWord:<INPUT type="text" size="20" name="password_txtbox"> <IMG id="btnlogin" onclick="login(id_txtbox.value,password_txtbox.value); "name="btnlogin"> </form> 1.2. login.js function login(id,pass){ document.form_login.id_txtbox.value = id; document.form_login.password_txtbox.value = pass; document.form_login.submit(); } 2.menue.php <?php $user_id = $_POST['id_txtbox']; $user_pass = $_POST['password_txtbox'];  $hiddentag1 .= "<input type='hidden' id='hid_id' name='hid_id' value=" .$user_id. ">"; ?> <html> <body> <form action="edit.php" name="link_edit" method="post"> <?= $hiddentag1 ?> </form> </body> </html> menue.phpが表示された際に、右クリックメニューからソースの表示を選択し、 ソースを見ますと、hiddenタグが表示されてしまっています。 もしPASSWORDがmokoだったら、 <input type='hidden' id='hid_id' name='hid_PASS' value=moko> と見えてしまいます。 これではIDやパスワードをページ間で持ちまわる事は危なくて出来ません。 しかし、login.htmlからのアクセス以外(URL直打ち等)をはじく為には 全てのページで最初にIDとPASSWORDによる認証が必須とも考えています。 どうすれば「ソース表示」で見せずに、phpからhtmlに重要な値を渡し、 それを他のphpにPOSTする事が出来るでしょうか? PHP,POST等のキーワードで探しても、検索語句が悪いのか、なかなか解決方法を見つかれずにいます。 どうかご教授くださいませ。

    • ベストアンサー
    • PHP
  • IE5でonmouseoverがうまく行きません。

    画像にマウスが触れた時にその画像を 替えたいのですが,NNではうまく行き, IE5では画像は変化せずうまく行きません。 IE5は次のエラーメッセージがでます。 ページでエラーが発生しました。 -> オブジェクトを指定してください。 よろしくお願いします。 <HTML><HEAD><title></title> <script language="javascript"> <!--- img = new Array(); for (i = 0; i <= 1; i++) {  imag[i] = new Image() ;  imag[i].src = "on_" + i + ".gif"; } function On(n) {   document.images['menu'+n].src = imag[n].src; } function Off(n) {   document.images['menu'+n].src = "off_" + n + ".gif"; } //---> </script></head> <BODY> <a href="xxx.html" TARGET="MAIN" onMouseOver="On(0)" onMouseOut="Off(0)"> <img src="off_0.gif" name="menu0" border="0"></a> <a href="yyy.html" TARGET="MAIN" onMouseOver="On(1)" onMouseOut="Off(1)"> <img src="off_1.gif" name="menu1" border="0"></a> </BODY></HTML>

  • javascriptでログインページの作成

    JSPを作成しているのですが、javascirpt構文の方が 多いため、こちらで質問をさせて頂きます。 javascript, html で ログインページを作成しています。 <%@ page contentType="text/html;charset=Shift_JIS" %> <script type="text/javascript" language="javascript"><!--     function Submit(name,pass,f){  if(name == null){ document.getElementBy(f).action="http://www.yahoo.co.jp"; document.getElementById(f).submit(); }else{ document.getElementById(f).action="http://www.google.co.jp"; document.getElementById(f).submit(); } } //--></script> <form action="login.jsp" method="post" NAME="f1"> <table border="1" width="30%"> <tr> <td>ユーザーID:</td> <td><input type="text" name="admin" size="25" value=""></td> </tr> <tr> <td>パスワード:</td> <td><input type="password" password="password" value=""></td> </tr> </table> <%--- これが悪いのかも!? --- %> <% String name = request.getParameter("name"); String password= request.getParameter("password"); %> <input type="submit" value="ログイン" onClick="Submit('name','password','f1');"> </form> </body> </html> ログインボタンをクリックして、name,password,f1(formの名前)を function のSubmitに値を渡したいのですが、nullが渡されてしまいます。 テキストボックスで入力された値を渡したいのですが、 javascript,htmlの知識が乏しいため、どこがおかしいのかわかりません。 もしわかる方が居ましたら、よろしくお願いたします。

  • nameを使わずにidだけで

    よろしくお願いします XHTML1.0 StrictでJavascriptを使おうと思ったのですが 通常 <img src="1.gif" width="180" height="155" alt="" name="b01" onmouseover="document.b01.src='02.gif'" onmouseout="b01.document.src='01.gif'" /> と書いているのを nameを使わずにidだけで同じ動作を行うにはどうしたらいいのでしょうか? 参考になるホームページなどありましたらよろしくお願いします

  • VBAでIE操作

    三流君を見てもよくわからなかったので教えてください。 三菱東京UFJ銀行に自動でログインできるようにエクセルVBAで操作していますが パスワードを入れた後のログインがうまく出来ません。 objIE.document.Forms(0).submit だと、サイトが更新されてしまいます。 ソースは <td class="buttons"> <a href="javascript:void(0)" onClick="gotoPageFromAA011(); return false;" tabindex="3"><img src="https://directg.s.bk.mufg.jp/refresh/imgs/DIRECT_IMAGE/LOGINOUT/btn_login.gif" alt="ログイン" onmouseover="this.src='https://directg.s.bk.mufg.jp/refresh/imgs/DIRECT_IMAGE/LOGINOUT/btn_login_over.gif'" onmouseout="this.src='https://directg.s.bk.mufg.jp/refresh/imgs/DIRECT_IMAGE/LOGINOUT/btn_login.gif'"></a> なので、 objIE.document.all.gotoPageFromAA011(); return false;.Click とやりたいところですが、VBAではエラーになってしまいます。 どうすればログインできるのでしょうか? http://www.ken3.org/cgi-bin/group/vba_ie_form.asp#Input_button_Click を見てみましたが私がうまく出来てないのか出来ませんでした。 ご回答よろしくお願いします。

  • ログインフォームの送信をURLでフォーム入力を省略

    メールや動画サイト等でログインする時、ID、パスワードを入力しますが、 面倒であるため省略しようと考えます。 例にニコニコ動画のログイン画面でのHTMLソースで<form><input>のみを抜粋します。(https://secure.nicovideo.jp/secure/ のソースです。) <form name="login" id="login" action="login" method="post"> <input type="hidden" name="next_url" value=""> <input value="" type="text" name="mail" id="mail"> <input value="" type="password" name="password" id="password"><input name="login" type="image" id="login_submit" src="img/login_form/btn_login.png" alt="ログイン"> </form> これをURLに置き換えると "https://secure.nicovideo.jp/secure/login?next_url=&mail=メールアドレス&password=パスワード" なると思うのですが"ログインエラー"になります。 わかる方よろしくお願いします。

  • javascriptを使ったformへの自動ログインがうまくいきません

    こんにちは、以下のような書かれたサイトにjavascriptを使って自動ログインしたいと考えていますが、うまくログインされません。 一番下のinputタグにてログインしているようなのですが IE.Document.Form1.imgLogin.click(); とすると、エラーになるので IE.Document.Form1.elements(5).click(); としましたがエラーにはならないもののうまくいきませんでした。 IE.Document.Form1.elements(5).data = true; IE.Document.Form1.elements(5).value = true; IE.Document.Form1.action = "index.aspx"; IE.Document.Form1.submit(); としてみましたが、こちらもうまくいきませんでした。 どのようにしたら、自動ログインすることが可能なのでしょうか? 教えて頂けると非常に助かります。 よろしくお願いいたします。 ---サイトフォーム <FORM id=Form1 name=Form1 action=index.aspx method=post> <INPUT id=__VIEWSTATE type=hidden value=... name=__VIEWSTATE> <INPUT id=__EVENTVALIDATION type=hidden value=... name=__EVENTVALIDATION> <INPUT id=txtUid maxLength=6 value="" name=txtUid> <INPUT id=txtPwd type=password maxLength=20 value="" name=txtPwd autocomplete="off"> <INPUT language=javascript id=imgLogin onclick="{ if (document.Form1.txtUid.value==&quot;&quot;) { document.Form1.txtUid.focus();alert('ユーザIDを入力してください。');return false;} if (document.Form1.txtPwd.value==&quot;&quot;) {alert('パスワードを入力してください。');document.Form1.txtPwd.focus();return false;} return true;};" type=image src="img\login1.gif" border=0 name=imgLogin></form> ----オートログイン.js var IE = WScript.CreateObject("InternetExplorer.Application"); IE.Visible = true; IE.Navigate("http://hogehoge/hoge/index.aspx"); while(IE.busy) ; while(IE.Document.readyState != "complete") ; IE.Document.forms(0).elements(3).value = "user"; IE.Document.forms(0).elements(4).value = "password"; //IE.Document.forms(0).elements(5).click(); //IE.Document.Form1.imgLogin.click(); IE.Document.Form1.elements(5).data = true; IE.Document.Form1.action = "index.aspx"; IE.Document.Form1.submit();

  • PHP PCでログインできたのに、スマホから無理

    PCからは既存アカウントでログインできるのですが、スマホからログインできません。 もちろんスマホ用サイトにも同様のスクリプトを書いております。 PCでは、ブラウザ:Google Chrome スマホのOSは、Android4.3 です。 ログインスクリプトは下記のようなものです。ちなみにこのスクリプトはスマホ用の方です。 -------------------------------------------------------------------------------------------- <?php session_start(); //////////////////// // POST変数の取得 // //////////////////// $login_id = (isset($_POST['login_id']))? $_POST['login_id'] : ""; $password = (isset($_POST['password']))? $_POST['password'] : ""; /* var_dump($login_id); var_dump($password); exit; */ if($login_id!=="" and $password!==""){ //////////////////////// // データベースを検索 // //////////////////////// $con = mysql_connect("~", "~", "~"); mysql_select_db("LAA0471050-shopcart"); mysql_set_charset('utf8'); $sql = "SET NAMES utf-8"; mysql_query($sql); $sql = "SELECT * FROM member_profile;"; $result = mysql_query($sql, $con) or die(mysql_error()); $rowco = mysql_num_rows($result); for($i=0; $i<$rowco; $i++){ $row = mysql_fetch_row($result); // 取得された行に対応する配列を返し、内部のデータポインタを前に進める if($login_id===$row[4] && $password===$row[5]){ // IDとパスワードが両方一致していた場合 $_SESSION['login'] = 1; // ログイン状態にする // setcookie("id", $login_id, time()+60*60*24*365); // アカウント用のクッキーの有効期限は一年間 // setcookie("pass", $password, time()+60*60*24*365); $_SESSION['login_id'] = $login_id; // メールアドレス header("Location: mypage.php?login_id=$login_id"); }else{ // header("Location: login.php"); // echo 'error'; } } mysql_close($con); // データベースとの接続を解除する } ?> <!doctype html> <html> <head><title>ログインページ</title> <meta charset="utf-8"> <!-- ◆ スマートフォン用 --> <meta name="viewport" content="width=device-width, initial-scale=1" /> <!-- jQuery本体--> <script type="text/javascript" src="./jquery/jquery-2.1.3.js"></script> <!-- スマホ用スタイルシート --> <link rel="stylesheet" href="./jquery/jquery.mobile-1.4.5.min.css" /> <!-- スマホ用JavaScript --> <script src="./jquery/jquery.mobile-1.4.5.min.js"></script> </head> <body bgcolor="#FFFFCC"> <br> <?php for($i=0; $i<60; $i++){ echo '&nbsp'; } if($_SESSION['login']!==1){ echo '<a href="membership_form.php"><img src="./images/shinki.png" border="0"></a>'; echo '&nbsp;<a href="login.php"><img src="./images/login.png" border="0"></a>'; }else{ // ログインしてれば echo '<a href="mypage.php"><img src="./images/mypage.png" border="0"></a>'; echo '&nbsp;<a href="logout.php"><img src="./images/logout.png" border="0"></a>'; } ?> <br><br> <?php ////////////// // 表の表示 // ////////////// echo '<center>'; echo '<table width="320" cellpadding="0" cellspacing="0" border="0">'; echo '<tr rowspan="10" width="320">'; // ⇐ このrowspan="14"で、⇒の画像などを幅寄せできる【重要】 echo '<form name="form1" method="post" action="login.php">'; echo '<tr><td><img src="./images/login_bar.png" width="100%"></td></tr>'; echo '<tr><td width="320" height="20" class="line1">ログインID(メールアドレス)</td></tr>'; echo '<tr>'; echo '<td width="320" height="20" align="middle">'; echo '<input type="text" class="yokohaba" name="login_id" id="login_id" size="75" tabindex="1">'; echo '</td>'; echo '</tr>'; echo '<td width="320" height="20" class="line1">パスワード</td>'; echo '</tr>'; echo '<tr>'; echo '<td width="320" height="20" align="middle">'; //echo '<input type="password" class="yokohaba" name="password" id="password" size="75" tabindex="2" value="'.$_COOKIE['pass'].'">'; echo '<input type="password" class="yokohaba" name="password" id="password" size="75" tabindex="2">'; echo '</td>'; echo '</tr>'; echo '<tr><td width="320" height="20" align="middle">'; echo '<a href="JavaScript:document.form1.submit()" onclick="location.href=\'login.php\'"><img src="./images/login_send.png" border="0" tabindex="3" width="100%"></a>'; echo '</td></tr>'; echo '</form>'; echo '</table>'; ?> <br><br> <center><a href="top.php">トップページ</a></center> </center> </body> </html> どこがどう間違っているのか、ご指導お願い致します。

    • 締切済み
    • PHP
  • javascritpの中身をHTML-lintでエラーが出ないようにしたい

    英語のサイトで海外の方が作ったものを Another HTML-lint gateway http://openlab.jp/k16/htmllint/htmllinte.html でチェックしてエラーをできるだけなくしたいのですが、 私がJavascriptがさっぱりわからず、つまづいてしまいました。 ---------------------- <script language="JavaScript1.2">mmLoadMenus();</script> <a href="about.asp" onMouseOver="MM_showMenu(window.mm_menu_0119092132_0,0,23,null,'image2');MM_swapImage('image2','','images/menu_about2_selected.gif',1)" onMouseOut="MM_startTimeout();MM_swapImgRestore()"><img src="images/menu_about2.gif" name="image2" border="0" id="image2"></a><a href="basel.asp" onMouseOver="MM_swapImage('image1','','images/menu_basel2_selected.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="images/menu_basel2.gif" name="image1" border="0" id="image1"></a><a href="activitiesassist.asp" onMouseOver="MM_showMenu(window.mm_menu_0119090425_0,0,23,null,'image3');MM_swapImage('image3','','images/menu_assist2_selected.gif',1)" onMouseOut="MM_startTimeout();MM_swapImgRestore()"><img src="images/menu_assist2.gif" name="image3" border="0" id="image3"></a><a href="activitiesreport.asp" onMouseOver="MM_showMenu(window.mm_menu_0119090642_0,0,23,null,'image4');MM_swapImage('image4','','images/menu_report2_selected.gif',1)" onMouseOut="MM_startTimeout();MM_swapImgRestore()"><img src="images/menu_report2.gif" name="image4" border="0" id="image4"></a><a href="specificinfo_main.asp" onMouseOver="MM_showMenu(window.mm_menu_0119090857_0,0,23,null,'image5');MM_swapImage('image5','','images/menu_specific2_selected.gif',1)" onMouseOut="MM_startTimeout();;MM_swapImgRestore()"><img src="images/menu_specific2.gif" name="image5" border="0" id="image5"></a><a href="links.asp" onMouseOver="MM_swapImage('Image2','','images/menu_links2_selected.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="images/menu_links2.gif" name="Image2" border="0" id="Img1"></a> ---------------------- ・body内にscriptが書かれています。 ・alt属性の入れ方がわかりませんでした。 ・<script language="JavaScript1.2">は、 <script type="text/JavaScript1.2">で良いのでしょうか。 ・同じnameがあり(idも合っていない)変更しても問題ないでしょうか? 初心者な質問かと思いますが、 回答いただければ幸いです。 よろしくお願いします。