Backstory: strong>我正在尝试使用SendGrid的Newsletter Widget,但他们目前不喜欢 使用SSL提供它。 所以任何对https的请求://只是重定向到http://然后浏览器会抱怨我的安全站点上的不安全内容。 p>
好的,所以我在PHP中实现了这样的东西: p>
然后在我看来有这个: p>
执行后查看此页面的来源表明它可以很好地提取javascript小部件代码。 但是 strong>,它不起作用。 通过“不工作”我的意思是javascript代码永远不会执行。 p>
如果我使用脚本标记加载它(在非https开发环境中): p>
\ n 然后它工作得很好! p>
TL; DR; strong>什么会导致javascript在 src下加载时执行正常 em> 脚本 strong>元素的属性,当作为脚本 strong>标记内的内容回显时不起作用? p>
PS 您可以在此处查看SendGrid小部件源。 p>
div>
$ output = file_get_contents('http://sendgrid.com/newsletter/getSubscriptionWidget?p=xxx');
code> pre>
< script type =“text / javascript”>
<?php echo($ output) ; ?>
< / script>
code> pre>
< script type =“text / javascript”src =“http://sendgrid.com/newsletter/getSubscriptionWidget?p=xxx”>
code> pre>
Backstory: I'm trying to use the Newsletter Widget from SendGrid but they currently don't offer it using SSL. So any requests to https:// just redirect to http:// and then browsers complain about insecure content on my secure site.
Ok fine, so I implement something like this in PHP:
$output = file_get_contents('http://sendgrid.com/newsletter/getSubscriptionWidget?p=xxx');
And then in my view have this:
<script type="text/javascript">
<?php echo($output); ?>
</script>
Viewing the source of this page after execution shows that it pulls the javascript widget code in just fine. BUT, it doesn't work. By "not working" I mean the javascript code never executes.
If I load it (in a non-https development environment) using the script tag like:
<script type="text/javascript" src="http://sendgrid.com/newsletter/getSubscriptionWidget?p=xxx">
Then it works just fine!
TL;DR; What would cause javascript to execute fine when loaded under the src attribute of the script element and not work when echoed as content inside script tags?
P.S. You can view the SendGrid widget source here.