.




うぇブログ2
最新エントリ
トップ :  Javascript : 

(1) 2 »

2007/10/07
カテゴリ : Javascript

執筆者: itoh (2:49 am)
チェックボックスで、あると思います。
ユーザーに「これは必ずチェックしてるよー」って注意を促したいチェックボックス。

だけど、disabledを指定してしまうと、送信そのものがされません。


んー、それは困るっていうか意味がない。


で、すげー「なるほど」って思ったのは、
http://chaichan.web.infoseek.co.jp/qa5500/qa5629.htm
の回答。

引用:

disabledにしておいて、送信前にdisabledをはずすとかどうでしょう?

いやー、その発想はなかった。Hiddenで併記は確かにカタいんだけどね。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (22077)
2007/09/17
カテゴリ : Javascript

執筆者: itoh (11:33 pm)
メタ文字を正規表現として、エスケープするときにPHPの感覚で
引用:

\[

とかやってたら、ぜんぜん[にヒットしなくて????って感じだったのだけど、
http://m035.blog61.fc2.com/blog-entry-13.html

みたら、
引用:

\\[

ってやらないといけないのかもとか思い、成功。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (11884)
2007/08/17
カテゴリ : Javascript

執筆者: itoh (10:53 am)
http://blog.livedoor.jp/dankogai/archives/50797726.html
より。

   for (var i = 0, l = spans.length; i < l ; i++){
      var span = spans[i];
      if (span.className != 'monta') continue;
      span.setAttribute('title', 'ここをクリックすると...');
      span['onclick'] = function(){ this.style.backgroundColor = "transparent" };


for (var i = 0, l = spans.length; i < l ; i++){
って、毎回spans.lengthにアクセスするのが重いということで、一度lに格納してるんだけど、だけど、カンマ区切りでなんでこんな箇所で変数宣言できるのか・・・。よく見てみると、var i=0って宣言できてる時点で「あぁ」って感じだけど、これは気が付かない。



span['onclick'] = function(){ this.style.backgroundColor = "transparent" };
って、DOM Elementにイベントハンドラをくくりつける方法なんだけど、setAttributeとか、、attachEventとかよりもこの方法のほうがクロスブラウザっぽいらしい。うそ〜ん。って感じだけど。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (4610)
2007/07/24
カテゴリ : Javascript

執筆者: itoh (3:35 pm)
ToolTipsというそうだ。


とりあえず、ここにいろいろあったので、リンク先をクリックしまくってみる。


んで、最終的に候補に残ったのは、
tooltips.js
http://tooltip.crtx.org/

glt.js
http://www.robertnyman.com/glt/

nicetitle.js
http://kryogenix.org/code/browser/nicetitle/


要望としては、
・ポップさせた画面は、HTML+CSSで制御したい
・Prototype.jsベースならなんとなく
・Ajax使ってとってくるまででもない

ということで、
http://www.nickstakenburg.com/playground/scriptaculous/tooltip/
とかもあったんだけど、Jsだけで見栄え部分も設定というのが抵抗あってパス。その辺は、glt.jsも同じ。

nicetitle.jsは、なかなかいいなーと思ったんだけど、Jsコードが関数ベースでうーん・・・。ってそれはたいしたことない話なのかも。
(そういうところにこだわるのってJavaScript初心者っぽい・・・)


ということで、tooltips.jsになりそうな感じ。
itohさんのブログを読む | コメント (1) | トラックバック数 (0) | 閲覧数 (7456)
2007/06/06
カテゴリ : Javascript

執筆者: itoh (6:07 pm)
minahitoさんのポジティブシンキングサービス、riafさんのネガティブシンキングサービスに続く、日本人的文章変換サービス。


Bookmarkletで提供します。

java script:with(document.body)innerHTML=innerHTML.replace(/(です|だ|ます|である)。/g,'だと思われます。').replace(/ない。/g,'なさそうです。').replace(/(ある)。/g,'ありそうです。').replace(/(ないか|ないのか|ではないか)(\?|?)?/g,'と思いますがいかがでしょう?');focus();


これで、言い切り口調のブログも心穏やかに読めることでしょう。




いえ、私は使いませんが。
itohさんのブログを読む | コメント (10) | トラックバック数 (0) | 閲覧数 (5505)
2007/03/08
カテゴリ : Javascript

執筆者: itoh (9:58 pm)
ブラウザ上のWYSIWYGエディタって、流行ってるんだけどいまいちいまいちって感じなので食わず嫌いし続け。


とはいっても、まぁ、使えると便利だよなぁと。

便利というか、セールスポイントになるというか。

・・・・・。というわけで、重い腰を上げてみたのは良いけど、なんかすごいことになってるんですが。TinyMCE。


使わなかったのは、ELFさんのこんな記事やGIJOEさんの「どう考えてもXSSの温床」という意見に揺られがちだったのです。

んー、XSSについては、機能をなるべく制限して、吐き出すHTMLを各ブラウザで確認してホワイトリストを作ってやるかと。面倒だなぁ。


それより面倒なのが、設定方法とか。ホワイトリスト作るにしても何使うか決めないとだし。



んーーーーーーーーーーーー。




これ翻訳しちゃえ



ということで、
http://pukiwiki.junoe.jp/index.php?TinyMCE
にてちまちまと始めます。アーいつ使えるんだ。
itohさんのブログを読む | コメント (11) | トラックバック数 (0) | 閲覧数 (9059)
2007/02/08
カテゴリ : Javascript

執筆者: itoh (3:06 pm)
最近、prototype_window_classが便利で使っているのだけど、今日使ったらうまくモーダルしてくれなかった・・・。

なんでだー?と悩みまくって分かったのは、alphacube.cssを使うときにもdefault.cssも読み込まないといけないということ。

<link rel="stylesheet" href="/css/prototype_window_class/themes/default.css" type="text/css">
<link rel="stylesheet" href="/css/prototype_window_class/themes/alphacube.css" type="text/css" />

って2行必要なんだ。ふーん。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (4526)
2007/01/09
カテゴリ : Javascript

執筆者: itoh (9:13 pm)
昔からコレが苦手だ・・・。

何かを勉強する時に「何でそうなってるのか?」ということを考えずに「そういうものなんだ」と割り切って前に進むと意外と楽に理解できること。


今、クロージャを理解しようとして
        div[i].onmouseout=(function(obj){
            var obj_copy = obj;
            return function(){ 
				obj_copy.style.color=fore_col;
				obj_copy.style.background=back_col;
            }; 
		})(div[i]);

の何でreutnr function(){なんだー!!と2時間ほど悩みまくってたけど、http://torus.jp/memo/x200406/flash_closure.rd.html

引用:

function があったりしてちょっと難しく感じるかもしれませんが、これを決まりきったやり方なので覚えてしまってもよいと思います。

でちょっと楽になった。で、ふーんと理解できたような気がする。


こういう思考の変化って、慣れないなぁ。

なんか、すげー自分が頭悪く思えてくるよ・・・・。
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (4396)
2006/10/31
カテゴリ : Javascript

執筆者: itoh (5:51 pm)
prototype.jsベースのウインドウ制御のJavaScriptクラスを翻訳した。
使えそうなのに意外と日本の情報が無いので。こんなにマニュアルが充実してるので誰も書かないだけか。

http://www.junoe.jp/docs/prototype_window_class/documentation_ja.html

なんか、もう手が届かなさそうな世界なのでこの辺ちまちま使うしか。

itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (8211)
2006/10/19
カテゴリ : Javascript

執筆者: itoh (9:51 pm)
結構凶悪ですが、コードの量としてはへちまです。

とりあえず、アップロードスクリプト。HTML中学生レベルです。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form method="post" enctype="multipart/form-data" action="./upload.php">
<input type="file" size="40" name="csvfile">
<input type="submit">
</form>
</body>
</html>


で、次がPHP+JavaScript
一気に投稿すると、ブラックリストに載せられたり、サーバがハングするので、1秒のインターバルを置いてAjaxでPOST。setTimeoutの再起処理。

最初、Sleepが欲しいなーとか思ってたけど、あえて実装してない(と思う)JavaScriptステキ。

<?php
if (isset($_FILES['csvfile']['tmp_name']) && file_exists($_FILES['csvfile']['tmp_name'])){
	$file = $_FILES['csvfile']['tmp_name'];
	$json_object = array();
	$fp = fopen($file, 'r');
	while ($data = fgetcsv($fp, 4096)){
		$json_object[] = array(
			'mail' => $data[0],
			'firstname' => $data[2],
			'secondname' => $data[3],
		);
	}
	mb_convert_variables('UTF-8', 'SJIS', $json_object);
	ini_set('include_path', './:./lib');
	require_once 'HTML/AJAX/JSON.php';
	$json =& new HTML_AJAX_JSON();
	$json_value = $json->encode($json_object);
} else {
	$json_value = '{}';
}
?>
<html>
<head>
<title>JSON TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="js/prototype.js" type="text/javascript"></script>
<script language="JavaScript">
csvdata = eval('<?=$json_value?>');
</script>
</head>
<body>
<script>
postInterval = 1000;
function showPostResult(response, json){
	$('postResult').innerHTML += json.result+"<br>";
}

// データの数を測る
data_lines = 0;
for (i in csvdata){
	if (csvdata[i].mail){
		data_lines++;
	}
}
loop_num = 0;
postfunction = function(){
	params = '';
	for (j in csvdata[loop_num]){
		params += j+'='+csvdata[loop_num][j]+'&';
	}
	
	ajax = new Ajax.Request(
		'./pass_postvalue.php',
		{
		  method: 'post',
		  parameters: params,
		  onComplete: showPostResult
		}
		);
	loop_num++;
	if (loop_num < data_lines){
		setTimeout(postfunction, postInterval);
	}
}

setTimeout(postfunction, postInterval);
</script>
<div id="postResult">footer</div>
</html>
itohさんのブログを読む | コメント (2) | トラックバック数 (0) | 閲覧数 (11482)

(1) 2 »



 





メインメニュー

カテゴリ一覧

Google Adsense

うぇブログ カレンダー


XoopsCube Ring
Amethyst Blue - BULLETIN


.