バックストーリー: SendGridの Newsletter Widget を使用しようとしていますが、現在 SSL を使用して提供していません。したがって、https:// へのリクエストはすべて http:// にリダイレクトされるだけで、ブラウザは安全なサイトの安全でないコンテンツについて不平を言います。
わかりましたので、PHP で次のようなものを実装します。
$output = file_get_contents('http://sendgrid.com/newsletter/getSubscriptionWidget?p=xxx');
そして、私の見解では、これがあります:
<script type="text/javascript">
<?php echo($output); ?>
</script>
実行後にこのページのソースを表示すると、javascript ウィジェット コードが適切にプルされていることがわかります。しかし、うまくいきません。「機能しない」とは、javascript コードが実行されないことを意味します。
次のようなスクリプトタグを使用して(https以外の開発環境で)ロードした場合:
<script type="text/javascript" src="http://sendgrid.com/newsletter/getSubscriptionWidget?p=xxx">
その後、それはうまくいきます!
TL;DR; script要素のsrc属性の下に読み込まれたときに javascript が正常に実行され、scriptタグ内のコンテンツとしてエコーされたときに機能しない原因は何ですか?
PSここでSendGrid ウィジェットのソースを表示できます。