Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/5-26ebdb92

-件のトラックバック

-件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Web-Based-Proxy

『htmlとjavascriptだけじゃ、クロスドメイン、クロスブラウザは出来ない』

ってのが結論のようなので、こちらを参考にcgiを作ることにしました。

#!/usr/bin/ruby
cm = '<大家さんご指定のアフェリエイトタグ>'
cm = "<div style=\"text-align:center\">" + cm +"</div>" + "<br><hr>"

require 'cgi'
require 'kconv'
require 'open-uri'
cgi = CGI.new

url = cgi['url']

#STDOUT.binmode #Winは必要

print cgi.header("type"=>"text/html")
open(url){|io|
content = io.read
content.gsub!(/(<body[^>]*>)/i){
$1 + cm
}
print content.toutf8
}

そして、これを同一ドメイン内で呼び出すhtmlは以下のように。

<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function init(){
new Ajax.Request("/ruby/get.cgi?url=http://menu.2ch.net/bbsmenu.html", {
method:"get",
onSuccess: function(xmlhttp) {
$("res").innerHTML=xmlhttp.responseText;
}
});
}
</script>
</head>
<body onload="init()">
<div id="res"></div>
</body>
</html>

同一ドメインだし、cgiでUTF-8に直しちゃってるのでprototype.jsにお任せで問題なし。
因みに、まんま出力するだけなら、function init()の中身を
new Ajax.Updater($("res"),"/ruby/get.cgi",{
method: "get",
parameters: "url=http://menu.2ch.net/bbsmenu.html"});
とも書ける。

しかし、作ったcgiでは304 Not Moifiedを返す事はないので、無駄なトラフィックが発生してイマイチ。

対策はまた。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/5-26ebdb92

0件のトラックバック

0件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

kovayashi

Author:kovayashi
・嫌いなもの
 →好きなもの

・インストール
 →バンドル
・バックアップ
 →アップロード
・努力
 →チート

最近のトラックバック

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。