web開発をsafariでしてつまずいたことメモ
6171 ワード
webアプリ開発をしているとchromeで動くのにsafariで動かない!なんてことがありましたのでそのメモ。
remove関数には気をつける
ページ内で動的に記入欄を増やすボタンと減らすボタンを作った時につまずいた。
hoge.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
//記入欄を増やす
function add()
{
var div_element = document.createElement("div");
div_element.innerHTML = '<input type="text" name="text[]" size="50" value=""><br>';
var parent_object = document.getElementById("hoge");
parent_object.appendChild(div_element);
}
//記入欄を減らす
function remove()
{
var parent_object = document.getElementById("hoge");
parent_object.removeChild(parent_object.lastChild);
}
</script>
</head>
<body>
//ここにボタンを追加していく
<div id="hoge">
</div>
<div>
<button type="button" onclick="add();">テキスト追加!</button>
<button type="button" onclick="remove();">テキスト削除!</button>
</div>
</body>
</html>
Date()関数にも気をつける
例えば、
var date = new Date(yy+'-'+mm+'-'+dd);
で
yy=2017, mm=5, dd=2
とするとdateはNANでした。そこで
yy=2017, mm=05, dd=02
とすると正常に動作しました。ということで
var targetDate = new Date(yy+'-'+("0"+mm).slice(-2)+'-'+("0"+dd).slice(-2));
とすることで解決。sliceメソッドは指定した範囲を切り出します。引数を負の値にすると文字列の最後からその数分数え、文字列の終わりまで切り出します。
追記
別のPCで上記の修正なしでsafariで実行すると正常に動作しちゃいました。なんだったのか。
Author And Source
この問題について(web開発をsafariでしてつまずいたことメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/sbleru/items/51bfa70616d98577c48e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .