2016-11-17 10 views
0

謎の問題で数時間を過ごしました。私は何かグーグルを見つけることができませんでした。私はその知見を共有したい。iPhoneでinnerHTMLが動作しない

var input = document.getElementById('input'); 
 
var output = document.getElementById('output'); 
 
output.innerHTML = parseInt(input.innerHTML);
<div id="input">1233453455</div> 
 
<div id="output"></div>

期待される成果:

1233453455 
1233453455 

iPhoneの成果:

1233453455 
NaN 
ここ

は、iPhone上のPC上で期待される結果を生成したコードが、予想外です

なぜですか?

+1

http://stackoverflow.com/questions/226131/how-to-disable-phone-number-linking-in-mobile-safari – epascarello

答えて

1

iPhoneがjavascriptコードを実行する前にinnerHTMLコンテンツを変更しました! 「長い番号」は電話番号(この場合はそうではない)と解釈され、telリンクがinnerHTML内に追加されます。 (iPhone上のスクリプトの下に実行)alert窓が明らかになったものを守ってください。

var input = document.getElementById('input'); 
 
var output = document.getElementById('output'); 
 
alert('input content: ' + input.innerHTML) 
 
output.innerHTML = parseInt(input.innerHTML);
<div id="input">1233453455</div> 
 
<div id="output"></div>

だから、「予期せぬ結果」の理由があります。溶液は、溶媒として

:私の場合、私は単に私のテキストの異なるコンテナ(私はdata-属性を使用)に切り替え:

var input = document.getElementById('input'); 
 
var output = document.getElementById('output'); 
 
output.innerHTML = parseInt(input.getAttribute('data-test'));
<div id="input" data-test="1233453455">1233453455</div> 
 
<div id="output"></div>

別に説明しているようだhere@epascarello for pointing this outのおかげで)。しかし、それはあなたのページにリンクしているすべての電話番号を無効にします...

関連する問題