kyo: 2009年7月アーカイブ
mixiはnewUpdatePersonAppDataRequestで日本語保存すると化ける。
mixiはたまにcssの読み込みをサボる。
>IE6だけ?requestNavigateToで同じview内を飛ぶと発生するっぽい
>$('head').append('');して力ずくで解決
mixiはrequestNavigateToでstring以外の値を渡すとgetParamsで取得できない。
mixiのscript cacheを普通のscript tagに分解するfiddler scriptを書いてみた。
(これでlocalproxyを通しやすくなる)
速度とか気にしないならfiddler scriptもいけるかも。
if
(oSession.url.match(/app0\.mixi-platform\.com\/gadgets\/ifr\?country=JP/)) {
oSession.utilDecodeResponse();
var oBody =
System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
var script = '';
var template = '';
oBody = oBody.replace(/
src="\/gadgets\/concat\?rewriteMime=text\/javascript&(.+?)".+<\/script>/i,
function (nil, match) {
var qstr = match.split(/\&/);
for(var i = 0, l = qstr.length;i < l;++i) {
var k_v = qstr[i].split(/\=/);
k_v[1] = unescape(k_v[1]);
if (!k_v[1].match(/\.js$/)) continue;
script += template.replace(/%file%/, k_v[1]);
};
FiddlerObject.alert(script);
return script;
});
oSession.utilSetResponseBody(oBody);
};
botはJS効かないし。JS切ってるenな人はどうしようもないけど。
家電買うよりお得(な気がする)
jquery-opensocial-simple使うと一回の通信で複数の情報をとるような処理がで
きない。
コマンドっぽくしてもいいけど、そうするとjqueryっぽくないんだよなぁ。。。
opensocialでキャッシュ関係の指定がまともに効いた記憶がない。
外部接続APIでも、xmlでも、画像キャッシュでも、url parameterでも
とにかく無効化を指定して効いたことがない。
信じられるのはブラウザキャッシュの無効化とlocal proxyくらい。
var currentScript = (function (e) { if(e.nodeName.toLowerCase() == 'script') return e; return arguments.callee(e.lastChild) })(document);
で、「動かない」との問い合わせ2件目
ちゃんとファイル名を見るように修正。
これで月300円は格安。
ただ、たまにmozilla系のソフトで効かなくなる(MS IMEになる)
やはり短ければいいってもんじゃないなーと思って書き直した。
http://q.hatena.ne.jp/1117708187
PHPでメールを送るときに件名が文字化けする問題でこんなの見つけた。
でもこれ参照元の情報は2003年で、今発生した環境はbuilt: Jul 23 2008。。。
5年以上放置?
しかも報告されてる環境は4.3.11だけど、手元の環境は5.2.3。。。
単純に末尾に移すだけなら簡単。
現在位置を取ることもできるので変なところへ飛んだカーソルを復元することも可能。
ただ、クロスブラウザじゃないし、ざっくり探した範囲ではjQueryプラグインもないので追っかけるとはまりそう。
(たまにちゃんと制御してるサイトもあるので解決することは可能だと思うけど)
気になる人はsetSelectionRangeとかcreateTextRangeをgoogleにでも投げてください。
mixiアプリの紹介文のURLは自動でリンクになるのでここに開発者のcanvasへのリンク入れるといいかも。
(プレビューあるならそっちがいいけど)
最近Fiddlerで通信が表示されないなーと思ってたけど、
(AutoResponderとかは正常に動いていた)
ESET SmartSecurityが中継してるのが原因だったよう。
(Fiddlerは標準でブラウザからの通信しか表示しない)
表示を「All Processes」にしたら表示されるようになった。
よく考えたらたいていのimg hover,pngfixライブラリで
opensocialに対応してるのないかも。
(コンテナがimg cacheするので)
sisso.jsを対応させてみた。
あちこちからデータ持ってきて表示ってのが多いので
JSDeferredを使いたいけど、使い方がよくわからない。
と、言うか自作のjQuery.opensocial_simpleでは使えない気がする。
(非同期処理もとりあえずいったん値を返してから処理するので)
複数のIDで指定したユーザの情報を取得する機能を実装してみた。
前にgoogle groupで中の人がしゃべってたのを覚えてたのでよかったけど、
公式ドキュメントだけじゃわからんぞこれは。。。
自分の携帯からのメールに「htmlをimgのsrcにセットしてキャッシュさせる」ってあった。
見直してとんでもない内容にびびる。
opensocialは動的に追加したhtml($('body').append(''))の参照先も自動的にキャッシュ経由で読まれるように書き換えられてる気がする。
ほんとだったらすごいけど、気のせいかも。
とりあえずFiddler,KeePass,Skype,iTune,Eclipse(OSDE),Bubblesを入れた。
この状態でwindowsのアクティベーション要求されるとネット経由で認証できなくなる。
ひさしぶりにMSに電話した。
読み物としては面白いけど、参考になる話はあんまりなかった。
上巻の半分しか読んでないせいだと思う。
テイクダウンとかカッコウは面白くて結構ためになったのでこれから期待。
昔Perlでテンプレートエンジン作った経験が生きてる
(今後どんな機能が必要そうか、互換性保ったままどう拡張するかがわかる)
select[multiple="multiple"]でも同じようにできる。
指定された値以外の項目は:not(:checked)になる。
このUIわかりにくい気がする。
ちがうよ!ぜんぜんちがうよ!
shindigは.getとか.getDOMで取ってきた日本語が化ける。
httpheaderでutf-8を指定しても化けるのでそんなもんなのかな。
encodemaniaxでjavascript形式にしてjsonにして.getJSONで読み込んだ。
何か間違ってるのかなぁ。。。
->shindigのバグっぽい。mixiでは普通にとれる
shindigのバグがmixiで結構直ってる。
っていうかshindigバグおおすぎ。。。
(OSDE付属のバージョンが低いのか?)
mixiはDOM内からscript tagを抽出して一ファイルにまとめてくれる。
(勝手に)
が、関係ないscript tag(srcの無い直書きのもの)もなんかしてるっぽい。
script tagにclassつけてたら勝手に削除されてた。
まあ、普通やらないからなぁ。
(script tag内にJSのコメントで内部用のメッセージ文言を保持してた)
JSのローカルキャッシュならEx DOM Storageが興味深い。
(IE6+でlocalStrageが使えるようになる)
キャッシュには使ってみてもいいかも。
特にmixi appには有効かも。
コンテナでwindow.configurationって定義してるので
var configuration = {};とかやるとまずい。
(名前空間切ってほしいなぁ)
cssとか、htmlってのも要注意
owner_idの取得はサーバに聞くしかなさそう。
myspaceではいくつか抜け道あったんだけどなぁ。。。
(location.href.match(/owner_id=(\d+)/)[1]とか)
float:rigth;position:relative;top:-nnpx;して回避可能。
(今回は使わなかったけど)
yahooはベジータの紹介ページ(画像いっぱい)がトップだが、
googleはwikipediaがトップ。
yahooトップのページはSEO対策もされてないっぽいし、
タイトルどころか本文にも「ギャリック砲」なんて書かれてない。
でも、検索したときにどちらが適切かといわれたらyahooだなぁ。。。
普段yahooはgoogleと比べてサイト評価アルゴリズムが簡単な印象あるけど、
検索文とのマッチでいえばyahooの方がすごいかも。
とりあえずクローラを作ったとして「ギャリック砲」でこのサイトが
トップに出るアルゴリズムはかなり大変な感じになると思う。
http://www.ahww.or.jp/ani/cel_01.htm
「jQuery\d+="null"」みたいになってるけど、これがあるとjQueryでアクセスできなくなるっぽい。
キャッシュを吹っ飛ばす方法がわからなかった
(jQuery.cacheを吹っ飛ばすのは危険すぎると思った)
ので、この部分だけ無理矢理別処理書いて逃げた。
で、window.opener.location.reloadの存在確認をすると()をつけて実行する前でもエラーになる。
-> try {} catch (e) {}して回避
たぶん普通のwindowとjQueryの見てるwindowが違うのが原因だと思う。
呼び出すときにsetTimeout(function () {}, 0);して解決
checkedが反映されないものこれっぽい。
.nameの修正が反映されない問題もある。
登録画面とか、お問い合わせフォームってかなり重要だと思うけどどこも結構おざなり。
キーワード毎の検索順位表示とか、複数ワードの除外とかしたい。
ユーザがどの項目に注目してるかわかるかも
new function () {
var reg = new RegExp('^' + location.href.split(/#/)[0]);
$A(document.getElementsByTagName('a')).each(function (a) {
var href = (a.href || '').replace(reg, '');
if (!href.match(/^#/)) return;
Event.observe(a, 'click', function (env) {
var href = (Event.element(env).href || '').replace(reg, '');
pageTracker._trackPageview((location.pathname + '/').replace(/\/\/$/,
'/') + href.replace('#', ''));
});
});
};
諸事情によりprototype.js
どの項目が読まれたのかわかる
でもできれば各項目を個別ページにした方が解析は楽
なんに使うんだよw
そのうちandroidユーザだけの表示もできるのかな。
http://semooh.jp/jquery/cont/doc/release_1.3.2/
>.appendTo()などが、新たに追加された要素を返すように
この修正微妙に怖いかも。
たぶん大丈夫だと思うけど、appendToは結構わかって使ってなかったときもあるので若干不安。
表示が崩れるページはそのブラウザで検索すると順位が下がるとか。
うそかも。うそであってほしい。
AptanaによるとIEにはdocument.timeContainerってのがあるらしい。
どこにもそんな情報無いけど、何だろう?
入力項目のどの項目がどんなエラーになったかとか取るとすごいいい気がする。
エラーが頻発してる項目改善すればいいし。
src="http://www.google-analytics.com/urchin.js">
type="text/javascript"> _uacct = "xxxxx-x";
urchinTracker("/404.html?page=" + _udl.pathname + _udl.search);
を404に入れれば、どこから404にリンクされているかわかる。
http://tenjin-web.jottit.com/workshop/mvc
http://tockri.blog78.fc2.com/blog-entry-185.html
http://d.hatena.ne.jp/kiwanami/20090315/1237137796
やはりサーバサイドと比べると結構ややこしい(気がする)
でも、実際そこまで困ってないのは規模が小さいものばかりやってるからかな。。。
調子に乗ってmethodの乗っ取りでいろいろ実装してたけど、
結局詰まって次の処理手順を変数に持たせる形へ。
非同期実行時の排他制御は変数じゃないときつい。。。
gnuservで新規立ち上げ時に既存のwindowのバッファに入れられるようになった。
ahkでいろいろ変更してると使いにくい。
・$.grep
$.map、$.eachも含めて書式が微妙
・$.data
書式と名前を指定しないと全部吹っ飛ばすこと
・:hidden
:textや:buttonと同じように使うとまずい
・attr(key,fn)
使う?
・andSelf()
わかりにくい
・makeArray()
複数配列受け取らない、名前長い
・inArray
1.2系はIE7で動作おかしかったけど1.3系は直った?
・uniq
1.2系はjQuery objectしか受け取らなかった気がする
タイミングの問題か、スムーズスクロール系の動作が発動しないことがあった。
いろいろやったけど解決しなかったので、
window.openをiframeに変更して解決。
QUnit用の追加ライブラリみたいなのはもうちょっと作りたいかも。
(成功するまでこのfunctionを呼び続けるとか)