window.open()で新規開いた小窓ウィンドウで親ウィンドウのdocumentを取得するには
下記のプロパティを使います。
window.opener.document
これで親ウィンドウの値を取得するだけではなく、
値を編集することもできます。
例えば下記のコードは親ウィンドwのフォーム内のテキストをAAAに変更します。
新規開いたページに記述します。
window.opener.document.FORM1.TEXT1.value = "AAA";
window.open()で新規開いた小窓ウィンドウで親ウィンドウのdocumentを取得するには
下記のプロパティを使います。
window.opener.document
これで親ウィンドウの値を取得するだけではなく、
値を編集することもできます。
例えば下記のコードは親ウィンドwのフォーム内のテキストをAAAに変更します。
新規開いたページに記述します。
window.opener.document.FORM1.TEXT1.value = "AAA";
HTMLのheadセクションにはタイトルといろんなMetaタグが記述されているが、
その記述順番に気になったことはありますか?
そしてそれがどのような影響があるかぐぐってみました。
headセクション内のタグの記述順に特に決まりはないが、”charset”で示す文字コード指定のタグは、titleタグやmeta description/keywordsタグよりも先に記述することが推奨される。の中身がまさに、文字で書かれ、文字コード判定が必要だからです。
そういえばWordpressを使ってからこの辺全然気にしてないので
早速自分のサイトのheadセクションを確認しました。
下記のようなものです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> <head profile="http://gmpg.org/xfn/11"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Kinopyo's Blog</title>
なるほど、、metaタグでcharsetがUTF-8になってるから
titleのところのシングルクォーテーションがUTF-8の#039になったわけですね。
考えてみれば当たり前のことだけれど。。。
現在動作している環境。開発終わって、テスト環境でテストしたい場合、この変数を修正すればOKです。
‘development’,'test’または’production’があります。
ルートフォルダのパスです。
“wwwあり”か”wwwなし”はSEO的には優劣はありませんし、
どっちを使うかはたいてい各人の好き嫌いで決まっています。
例えばこのサイトの場合www.kinopyo.comとkinopyo.comで全部アクセスできますが、
私は”wwwあり”で正規化ています。
この正規化というのは非常に重要で、検索エンジンに対しての知らせです。
Googleのヘルプによると下記の解説になります。
使用するドメインとは、サイトのページをインデックスに登録する際に使用するドメインです。使用するドメインを http://www.example.com と指定すると、http://example.com の形式のリンクが検出された場合、Google ではそのリンクを http://www.example.com として処理します。また、検索結果に表示する URL は設定に基づいて決まります。
なので”wwwあり”と”wwwなし”が同じサイトであれば
正規化する必要があります。
.htaccessが使える環境では.htaccessを下記のように設定
.htaccessファイルはサイトのルートディレクトリに置いてください。
例えばこのブログのURLはwww.kinopyo.com/blogになっていますが、
.htaccessファイルはwww.kinopyo.comのディレクトリに置いてあればOKです。
設定に基づいてリダイレクトします。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
※”example.com”は自分のドメイン名に置き換えてください。
Googleウェブマスターツールは自分のサイトとGoogle検索の関係いついて
いろいろ設定できる支援ツールです。
ここでは自分が”www有り無し”をGoogleに伝えるための設定をします。
そうしないとGoogleは”www有り無し”をそれぞれ別のページへの異なる参照として処理されます。
サイトを正規化するためにはwwwありとwwwなしの両方を登録する必要があります。
Googleが提供するMetaデータをサイトのページに貼り付けることでサイトが確認されます。
(具体的な認証方法はGoogleのヘルプを見てください)
登録完了後はサイトを選択し、「サイト設定→設定→使用するドメイン」で
利用するドメイン、つまりwww有りなしを指定してください。
WordPressの「設定→一般」でサイトURLが正しく設定されるか確認してください。
もし.htaccessでは”wwwあり”で指定しWordpressでは”wwwなし”と指定した場合は
無限ループとなるため、サイトがエラーとなり表示できなくなります。
WordPressの仕様は調べていないが、どうやらWordpressの設定によりリダイレクトするように見えます。
Railsのvalidateチェックはすばらしいです。
使いかた非常便利だし、機能が強いです。
それでは、一緒に見てみましょう。
validateを使って、カスタマイズのvadidationチェックを定義できます。
例:
def validate
errors.add(:content, "を入力してください") if content =~ /^(ここに感想を書いてください。|ここに感想を書いてください)$/
end
チェックボックスがチェックされたかを確認。
チェックされていない場合、エラーが起こリます。
再入力を確認します。
詳細の使い方は、「validates_confirmation_of の使い方」を参照してください。
指定した値に含まれていないかをチェックします。
例:
validates_exclusion_of :sex,:in => ['female','male']
指定した値に含まれているかをチェックします。
validates_exclusion_ofの逆です。
例:
validates_inclusion_of:sex, :in => ['female','male']
正規表現を使って、値をチェックします。
例:
validates_format_of :code,:with=> /^[0-9A-Za-z]/, :message=>"は半角英数字で入力してください。"
値の長さをチェックします。
例:
validates_length_of :name, :maximum=>30
値は数字かどうかをチェックします。数字ではない場合、エラーを表示します。
例:
validates_numericality_of :code
必須値のチェック。値が入力されていない場合、エラーを表示します。
例:
validates_presence_of :code
値の重複チェック。DBに既に同じ値が存在した場合、エラーを表示します。
例:
validates_uniqueness_of :id
validates_length_ofと同じ。
システムを作る時に、パスワードを2回入力してもらって、確認処理をおこなうことが多いですね。
そんなめんどな仕事には、Railsはvalidates_confirmation_of メソッドを用意してくれました。
それでは、使い方を見てみましょうか。
まず、モデルで以下のチェックを行います。
validates_confirmation_of :password #カラム名 attr_accessor :password_confirmation #カラム名に_confirmation
そして、関連のビューで、以下の処理を書きます。
<%= password_field :user, :password %> <P> <%= password_field :user, :password_confirmation %>(確認用)
これで、自動的に入力されたパスワードは同じかどういかを確認してくれます。
※attr_accessorは、再入力フィールドの値を保存するための仮想カラムです。
この間Yahooアドパートナーを申請しました。
Yahooアドパートナーとはあなたのサイトに広告を掲載し、
閲覧もしくはクリックされたことで報酬がもらえるサービスです。
GoogleのAdSenseに相当するものです(しかし広告の質はまだまだ)。
申請してから一度も使った事なかったのですが、
今日広告のコードを貼りつけたら表示されませんでした。
いろいろ探してみたらサイトURLに”wwwあり”と”wwwなし”が問題となったようです。
Yahooに申請するときは”wwwあり”のwww.kinopyo.comで申請したのですが、
このブログでは今までずっと”wwwなし”のkinopyo.comで利用してました。
その違いで広告は表示されないのです。
SEO対策の具体的内容はまた今度まとめます。
セッションを使って、データを保存する時、
以下のエラーが表示されました。
Status: 500 Internal Server Error ActionController::Session::CookieStore::CookieOverflow
保存するデータは4KBをオーバーした場合、CookieOverflowエラーが表示されてしまいます。
セッションデータをDBに保存します。
以下のコマンドを実行します。
rake db:sessions:create rake db:migrate
config.action_controller.session_store = :active_record_store
これで、解決です。
EclipseにMavenのプラグインをインストールした後にEclipseを起動したら以下のエラーメッセージが出ました。
The Maven Integration required that Eclipse be running in a JDK, because a number of Maven core plugins are using jars from the JDK. Please make sure the -vm option in eclipse.ini is pointing to a JDK and verify that Installed JREs are also using JDK installs.
使ってた環境は確かにJREのみがあってJDKはなかったんです。
回避策としては
JDKのダウンロードはこちら:Sun Java
インストール後JAVA_HOMEとPATH環境変数もあわせて編集
エクスプローラ→マイコンピュータ→右クリック→プロパティ→詳細設定タブ→環境変数ボタン
jdkのパスはインストール先に合わせて下記内容を追記
vmの後に改行が必要
-vm C:\Java\jdk1.6.0_18\bin\javaw.exe
これで再起動したらエラーメッセージは出なくなりました。
Javaの.classから逆コンパイラしてもともとのソースコードが見れるツールです。
ずいぶん前一度使ったことがあります。
スタンドアロンのJD-GUIツールと、
Eclipseのプラグインとして使えるJD-Eclipseがあるらしいです。
スタンドアロンはJRE環境が必要とせずインストールだけで使えます。
jarファイルもサポートされているようです。
公式サイト:JD | Java Decompiler