ipad(ios 9.3.5)のsafariでのjavascript関数呼び出しで、参照エラーになります。  
サーバ側はphp7+smartyです。  
動的にjavascriptを出力したいので、smartyのtplファイル内にjavascriptを記載しています。  
javascriptはhaedタグ内でfunction定義を、bodyタグ内部でjs実行しつつ、必要によりfunctionを呼び出しています。

この構成でandroid(chrome)、windows(chrome)、mac
osx(safari)、ios(safari)で動作確認をすると、ios(safari)だけ、functionの参照エラーになります。

ざっくりコードを書くと以下ような流れです。

```

    <head>
    <script type="text/javascript">
    ①全画面に共通的なfuncton定義
    </script>
    <script type="text/javascript">
    ②この画面だけのfuncton定義 
    </script>
    </head>
    
    <body>
    <script type="text/javascript">
    ③function呼び出し
    </script>
    </body>
    
```

これで①～③の頭でconsole.logでログ出力すると、ios以外では①、②、③の順番にログ出力されるのですが、iosのみは①、③となって、③で②のfunctionを読んでいるので参照エラーになります。  
※WEBインスペクタでのデバック実行では②もソースに見えているのに定義実行されません。

分かりにくい文章で申し訳ないのですが、同じような事象に直面した方がおられましたら、ご助言をお願い致します。  
ちなみにソースの共通化の都合で、①、②、③は別tplになっていて、画面用tplにインクルードしています。
CC BY-SA 3.0
2017-12-21T14:49:23.123
40457
2017-12-21T14:49:23.123
20212
question
javascript php smarty ios9
ipad(ios 9.3.5)のsafariでのjavascript関数呼び出しについて