ホーム > タグ > javascript
javascript
【CSS】iPadだけにCSSを適用する方法
- 2010-05-17 (月)
- CSS | HTML | WEBに関すること | javascript
結論から言うとjavascriptでUserAgentを参照して振り分けるしかない。
linkやcss内の@mediaでどうにかなるもんだと思ってましたが。
<link rel="stylesheet" media="only screen and (max-device-width: 1024px)" href="../ipad.css" type="text/css" />
どうやら↑では”iPadオンリー”は無理です。
結局UserAgentを見るしかない。
var iPad = /iPad/.test(navigator.userAgent);
if(iPad){
//iPadだけに適用させたい記述
}
長くなるので無理な理由、検証、iPadだけにcssを適用させるjsは以下に。
- Comments: 5
- Trackbacks: 5
Node was not found” code: “8
- 2010-03-17 (水)
- javascript
swfobject2.2を使っているときに
windows firefox3.5.8の環境化においてFirebugが以下のエラーをはく(自分の環境だけかもしれませんが)
Node was not found” code: “8
たいした説明は出来ませんが非圧縮版の193行目付近が問題っぽい。
元のswfobject
function testPlayerVersion() {
var b = doc.getElementsByTagName("body")[0];
var o = createElement(OBJECT);
o.setAttribute("type", FLASH_MIME_TYPE);
var t = b.appendChild(o);
if (t) {
var counter = 0;
(function(){
if (typeof t.GetVariable != UNDEF) {
var d = t.GetVariable("$version");
if (d) {
d = d.split(" ")[1].split(",");
ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
}
}
else if (counter < 10) {
counter++;
setTimeout(arguments.callee, 10);
return;
}
b.removeChild(o);
t = null;
matchVersions();
})();
}
else {
matchVersions();
}
}
これの
b.removeChild(o);
でなぜかノードがねえすwwwってなってるので改造。
改変したswfobject
function testPlayerVersion() {
var b = doc.getElementsByTagName("body")[0];
var o = createElement(OBJECT);
o.setAttribute("id", FLASH_DUMMY_ID);
o.setAttribute("type", FLASH_MIME_TYPE);
var t = b.appendChild(o);
if (t) {
var counter = 0;
(function(){
if (typeof t.GetVariable != UNDEF) {
var d = t.GetVariable("$version");
if (d) {
d = d.split(" ")[1].split(",");
ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
}
}
else if (counter < 10) {
counter++;
setTimeout(arguments.callee, 10);
return;
}
b.removeChild(doc.getElementById(FLASH_DUMMY_ID));
t = null;
matchVersions();
})();
}
else {
matchVersions();
}
}
idをつけて、getElementByIdで直接指定してリムーブ。
ちなみにFLASH_DUMMY_IDは頭のほうで変数追加
元のswfobject
var UNDEF = "undefined", OBJECT = "object", SHOCKWAVE_FLASH = "Shockwave Flash", SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash", FLASH_MIME_TYPE = "application/x-shockwave-flash",
改変したswfobject
var UNDEF = "undefined", OBJECT = "object", SHOCKWAVE_FLASH = "Shockwave Flash", SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash", FLASH_MIME_TYPE = "application/x-shockwave-flash", FLASH_DUMMY_ID = "SWFObjectDummy",
これで動くようにはなった。
- Comments: 2
- Trackbacks: 0
【javascript】「。」を「(キリッ 」に置換するブックマークレット
- 2009-12-22 (火)
- WEBに関すること | javascript
「ツイート」を「ツイート(笑)」に置換するブックマークレット というものがあるので
http://d.hatena.ne.jp/amachang/20091105/1257399754
を改造して。
javascript:var d=document,r=d.evaluate('//text() [contains(.,"。")]',d,null,7,null),i=0;while(d=r.snapshotItem(i++))d.data=d.data.replace(/。/g,'(キリッ ');void(0);
できた(キリッ
Xpathを覚えよう。
https://developer.mozilla.org/ja/Introduction_to_using_XPath_in_JavaScript
- Comments: 0
- Trackbacks: 0
【javascript】現在が朝昼夕晩のいつかを求める
- 2009-11-10 (火)
- WEBに関すること | javascript
指定した時間になったら指定した背景を替えるjavascriptを作っていて。
朝:5時から8時 5以上8以下
昼:9時から16時 9以上19以下
夕:17時から20時 17以上20以下
晩:21時から4時 21以上4以下
と時間を決めてコードを書いて。分岐文を書く際にいろいろ試行錯誤しているのでメモ
var date = new Date(), h = date.getHours(), n = '';
ここまでは共通。サーバータイムとるほどの仕組みでもないのでローカルタイム。しかも分秒は気にしない。
if文を使った分岐
if(h>=5 && h<=8){ //5-8
n = "morning";
}else if(h>=9 && h<=16){ //9-16
n = "noon";
}else if(h>=17 && h<=20){ //17-20
n = "evening";
}else{ //21-4
n = "night";
}
三項演算子を使った分岐
n = (h>=5 && h<=8)? "morning" :
(h>=9 && h<=16)? "noon":
(h>=17 && h<=20)?"evening":"night";
見やすいしすっきりしたからこれかなぁ。なんとなく不安が残るけども。
うのくんが考えた別のアプローチの仕方
うのくん:
hを4で割って切り上げ
5時から8時 切り上げで2
9時から16時 切り上げで3,4
17時から20時 切り上げで5
21時から24時 切り上げで6
0時から4時 切り上げで1
こうだね
n = nn[Math.ceil(h/4)-1];
なのでこうだね
var nn = ["night", "morning", "noon", "noon", "evening", "night"]; n = nn[Math.ceil(h/4)-1];
おお。。短い。
変数増えたり、マジックナンバー使ってるあたりがネックなので
ごめんね今回は不採用。
ただ同じ結果でも別の書き方を見ると感激するなぁ。うむうむ。
- Comments: 0
- Trackbacks: 0
Home > Tags > javascript
- Search
- Feeds
- Ads
- Link
-
バナー
自分用メモ
- Meta
