背景故事:我正在尝试使用 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;博士; 什么会导致 javascript在脚本元素的src属性下加载时执行良好,而在脚本标签内作为内容回显时无法正常工作?
PS 您可以在此处查看 SendGrid 小部件源。