JavaScriptプログラムに関する各種メモ書き:タグ「エラー対処」での検索

IE8以下で console.log がエラーになる問題の対処

IE8以下で JavaScriptで console.log() を記述しているとエラーとなってしまいます。 そこでIE8以下でもとりあえずエラーが出ないようにする対策

対策1. consoleオブジェクトがあるかどうかを調べてから console.log() を使用する

console.log( my_obj);

  ↓ このように変更する。

if(console && console.log) { console.log( my_obj); }

対策2. 何もしない空のconsoleオブジェクトを作成する

(function () {
    if (typeof window.console === "undefined") {
         window.console = {}
    }
    if (typeof window.console.log !== "function") {
         window.console.log = function () {}
    }
})();

引用 : http://goo.gl/czcLY3

No.972
09/09 10:42

edit

jQuery
エラー対処

ブラウザ自動運転マクロ、iMacrosの細かいテクニック

・コメントアウト【 .iim ファイル】

' 先頭がクォーテーションはコメントと見なされます
' コメント 
' コメント

・2秒間ウェイトする(待つ)【 .iim ファイル】

WAIT SECONDS=2

・全てのコマンド実行時に x秒間ウェイトする(待つ)【 .iim ファイル】

SET !REPLAYSPEED SLOW
SET !REPLAYSPEED MEDIUM
SET !REPLAYSPEED FAST
SLOW   : 2秒待つ
MEDIUM : 1秒待つ
FAST    : 0秒待つ(待たない。)

・コマンドライン(URL,検索バー)からの実行

マクロ「mymacro.iim」を実行します。

 imacros://run/?m=mymacro.iim

実は拡張子 .js のマクロも実行できます

 imacros://run/?m=mymacro.js

フォルダ「myfolder」の中に入った「mymacro.iim」を実行するには「/」を「%5C」で置き換えます

 imacros://run/?m=myfolder%5Cmymacro.iim

Aタグを使ってHTMLから起動することもできます

<a href="imacros://run/?m=myfolder%5Cmymacro.iim">マクロ起動</a>

・JavaScriptからのマクロ実行【 .js ファイル】

var test;
test = "CODE:";
test += "URL GOTO=www.google.com \n";
var rt = iimPlay(test);
alert(rt); // 1 以下の時エラー

・iMacrosの .js からDOMオブジェクトを操作する【 .js ファイル】

window.content.document.getElementById("xxx");

・iMacrosの .js からconsole.log で出力する【 .js ファイル】

window.console.log( 'TEST!!!' );

・iMarcorsにエラーがあった時に止まらないようにする

SET !ERRORIGNORE YES

・iMacrosの1命令ごとのタイムアウトを設定する

(ステップごとのタイムアウトを 2秒 に設定する)

SET !TIMEOUT_STEP 2 

・重いページを読み込む時にページの読み込みを待たない

(ページ読み込みのタイムアウトを 1秒 に設定する)

SET !TIMEOUT_PAGE 1

・フォームの入力テキストにスペースを入力する

(スペースの代わりに <SP> を入力します。)
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:myform.php ATTR=* CONTENT=日本語<SP>太郎

・XPathで要素を指定してクリックする

普通に xpath が使えます (xpath式はダブルクォーテーションで囲むこと)

 TAG XPATH="//*[@id='my_id']/tr/td[3]/div/a"

・target="_blank" のリンクでウィンドウを開くとタブ番号がおかしくなる

firefoxで新規ウィンドウをタブで開く場合 target="_blank" をマクロで踏むとタブ番号がおかしくなりその後のマクロでエラーが出ることがあります。 この場合はリンクを押す代わりにリンク先を取得して imacros で画面遷移しましょう

・iMacrosでスクリーンショットを撮る

http://qiita.com/nori4k/items/2e55bc346062d5c490b8

リファレンス http://imacros.doorblog.jp

No.971
04/25 18:31

edit

iMacros
エラー対処
DOM
Firefox

<input type="button">にname=”submit” は使用できない

JavaScriptでフォームの送信(submit)を行うときは

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<body>
<form name="orderform" action="http://www.yahoo.co.jp/">
<input type="button" value="go" onclick="document.orderform.submit();">
</form>
</body>
</html>

このように記述しますが、このとき

<input type="button" value="go" onclick="document.orderform.submit();">

<input type="button" name="submit" value="go" onclick="document.orderform.submit();">

とするとエラーになるので注意。

<input name="submit" type="submit">とするとJavaScriptでエラーとなる

<form name="form1">
<input name="submit" type="submit" value="送信">
</form>

<script>
document.form1.submit();
</script>

は Object not found エラーとなります。

name="submit"

を削除するか別の名前に変更するとなおります。

No.526
10/02 11:08

edit

エラー対処

外部JavaScriptによるWindows IE7 の「ランタイムエラー」に対処する

JavaScriptを外部ファイルにしたり、別ドメインのJavascriptを

<script language="JavaScript" src="http://www.testserver.local/test.js"></script>

というふうに呼び出したりすると Windows版IE7 で「ランタイムエラー」が起きることがあります。

この場合の対処方法は

Javascriptが記述してあるファイルの

  • 文字コードを「UTF-8」
  • 改行コードを「CR」+「LF」

にする。

です。これで直ると思います。


またIE7 , IE8 では prompt を使うと

このWebサイトはスクリプト化されたウィンドウを使用して情報を依頼しています。このWebサイトを信頼している場合には、ここをクリックして、スクリプト化されたウィンドウを許可してください

という警告が出て、ユーザーに不必要な動作をさせることになるので気になる場合は使用しないように。

jQuery Alert Dialogs

http://abeautifulsite.net/blog/2008/12/jquery-alert-dialogs/

等で代用するのがいいでしょう。

No.519
02/18 11:59

edit

エラー対処