IE8以下で JavaScriptで console.log() を記述しているとエラーとなってしまいます。 そこでIE8以下でもとりあえずエラーが出ないようにする対策
console.log( my_obj);
↓ このように変更する。
if(console && console.log) { console.log( my_obj); }
(function () {
if (typeof window.console === "undefined") {
window.console = {}
}
if (typeof window.console.log !== "function") {
window.console.log = function () {}
}
})();
引用 : http://goo.gl/czcLY3
' 先頭がクォーテーションはコメントと見なされます
' コメント
' コメント
WAIT SECONDS=2
SET !REPLAYSPEED SLOW
SET !REPLAYSPEED MEDIUM
SET !REPLAYSPEED FAST
SLOW : 2秒待つ
MEDIUM : 1秒待つ
FAST : 0秒待つ(待たない。)
マクロ「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>
var test;
test = "CODE:";
test += "URL GOTO=www.google.com \n";
var rt = iimPlay(test);
alert(rt); // 1 以下の時エラー
window.content.document.getElementById("xxx");
window.console.log( 'TEST!!!' );
SET !ERRORIGNORE YES
(ステップごとのタイムアウトを 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式はダブルクォーテーションで囲むこと)
TAG XPATH="//*[@id='my_id']/tr/td[3]/div/a"
firefoxで新規ウィンドウをタブで開く場合 target="_blank" をマクロで踏むとタブ番号がおかしくなりその後のマクロでエラーが出ることがあります。 この場合はリンクを押す代わりにリンク先を取得して imacros で画面遷移しましょう
http://qiita.com/nori4k/items/2e55bc346062d5c490b8
リファレンス http://imacros.doorblog.jp
http://kudakurage.hatenadiary.com/entry/20091211/1260521031
http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/jquery.validate.min.js
<form name="FM">
<input type="text" name="hoge">
<input type="text" name="fuga">
</form>
$("#FM").validate({
rules: {
hoge: {
required: true
} ,
'fuga': {
required: true
}
} ,
messages: {
hoge: {
required: '入力してください。'
} ,
'fuga': {
required: '入力必須項目です。'
}
}
});
required – Makes the element required.
remote – Requests a resource to check the element for validity.
minlength – Makes the element require a given minimum length.
maxlength – Makes the element require a given maxmimum length.
rangelength – Makes the element require a given value range.
min – Makes the element require a given minimum.
max – Makes the element require a given maximum.
range – Makes the element require a given value range.
email – Makes the element require a valid email
url – Makes the element require a valid url
date – Makes the element require a date.
dateISO – Makes the element require an ISO date.
number – Makes the element require a decimal number.
digits – Makes the element require digits only.
creditcard – Makes the element require a credit card number.
equalTo – Requires the element to be the same as another one
$.validator.addMethod("myregex", function(value, element, reg_str) {
var re = new RegExp(reg_str);
return re.test(value);
}, "入力値が正しくありません");
バリデーション定義に以下のように記述
rules: {
postal: {
myregex: '^[0-9\-]+$'
}
} ,
messages: {
postal: {
myregex: '郵便番号を正しく入力してください。'
}
}
jQuery.validator.addMethod('my_validation_func', function(value, element) {
if ( XXXXX ){ // XXXXX にエラー判別ロジックを記述
return true; // trueが返るとエラーとならない
}
else{
return false; // falseが返るとエラー
}
}, 'デフォルトのエラーメッセージ');
$("#FM").validate({
highlight: function(element, errorClass) {
$(element).fadeOut(function() {
$(element).fadeIn()
})
}
});
標準ではエラー時にフォーム要素に error というクラスが付加されますが、これがいらない場合は 空のfunction() を定義します。
$("#FM").validate({
highlight: function(element, errorClass) {
}
});
バリデーションの実行タイミングは ・フォーム Submit時 ・エラー後のフォーム内容変更時 ですが、任意のタイミングでバリデーションを実行するには valid()メソッドを実行すればOK。
<form id="FM">
$("#FM").valid();
$("#FM").validate().cancelSubmit = true;
下記のようにすると id="foo" のラジオボタンやチェックボックスがチェックされている時にだけバリデーションを行います
rules: {
my_name : { required: '#foo:checked' }
} ,
次のような指定方法があります
指定値 | 説明 |
---|---|
#foo:checked | id="foo" のラジオボタンやチェックボックスがチェックされている時 |
#foo:filled | id="foo" のフォーム要素に何か文字(空白以外)が入力されている時 |
#foo:visible | id="foo" のフォーム要素が表示されている時 |
rules: {
my_name : { required: function() { return ($('#my_flg').val() === '1' ); } }
} ,
messages: {
my_name: { required: 'my_flgが『1』の時はmy_nameは空欄にはできません' }
}
例 : #submit_button を非活性にします。
submitHandler: function(form) {
// ボタンを非活性
$('#submit_button').prop('disabled', true);
form.submit();
}
<input type="text" name="myform[]">
<input type="text" name="myform[]">
<input type="text" name="myform[]">
rules: {
'myform[]': {
required: true
}
} ,
messages: {
my_name: { required: '少なくともどれか1つに入力してください。' }
}
クラス .group_require_1 のうちどれか1つに入力があるとヴァリデーションOKとなります。
<input type="text" name="textA" class="group_require_1">
<input type="text" name="textB" class="group_require_1">
<input type="text" name="textC" class="group_require_1">
jQuery.validator.addMethod("group_require", function(value, element, selector_name) {
var v = '';
$(selector_name).each(function( index ) {
v += $( this ).val();
});
if ( v ){ return true; }
else { return false; }
}, "このフィールドは必須です。");
rules: {
'student_no[]': {
group_require : '.group_require_1'
} ,
messages: {
my_name: {
group_require: '少なくともどれか1つに入力してください。'
}
}
validate()メソッドで初期化を行った後でルールを追加するにはadd()を使用します。
$("input[name=other_name]").rules("add", { required: '#other_radio:checked' }); //other_radio にチェックが有る時は必須とする
ルールとバリデーションエラーメッセージを合わせて追加する
$( "#myinput" ).rules( "add", {
required: true,
minlength: 2,
messages: {
required: "Required input",
minlength: jQuery.validator.format("Please, at least {0} characters are necessary")
}
});
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();">
とするとエラーになるので注意。
<form name="form1"> <input name="submit" type="submit" value="送信"> </form> <script> document.form1.submit(); </script>
は Object not found エラーとなります。
name="submit"
を削除するか別の名前に変更するとなおります。
JavaScriptを外部ファイルにしたり、別ドメインのJavascriptを
<script language="JavaScript" src="http://www.testserver.local/test.js"></script>
というふうに呼び出したりすると Windows版IE7 で「ランタイムエラー」が起きることがあります。
この場合の対処方法は
Javascriptが記述してあるファイルの
にする。
です。これで直ると思います。
またIE7 , IE8 では prompt を使うと
このWebサイトはスクリプト化されたウィンドウを使用して情報を依頼しています。このWebサイトを信頼している場合には、ここをクリックして、スクリプト化されたウィンドウを許可してください
という警告が出て、ユーザーに不必要な動作をさせることになるので気になる場合は使用しないように。
jQuery Alert Dialogs
http://abeautifulsite.net/blog/2008/12/jquery-alert-dialogs/
等で代用するのがいいでしょう。