使用 PHP 脚本仅在主页上执行 JS <script> 标记
Use a PHP script to execute a JS <script> tag on the homepage only
我正在尝试在 PHP 中创建一个声明,使调查猴子弹出窗口出现在网站的主页上,而不是其他页面上。
我已经尝试了下面的代码和它的不同变体来尝试让它工作。我可以通过将元素放入网站的 中来将弹出窗口添加到整个网站,但是当我试图让它只出现在主页上时,什么也没有显示。
我试过只使用一个 'echo' 而不是将其分成三个,并且还使用 /index.php 而不是 /.
<?php
if ($_SERVER["SCRIPT_NAME"] == '/') {
echo '<script>';
echo '(function(t,e,s,o){var n,a,c;t.SMCX=t.SMCX||[],e.getElementById(o)||(n=e.getElementsByTagName(s),a=n[n.length-1],c=e.createElement(s),c.type="text/javascript",c.async=!0,c.id=o,c.src=["https:"===location.protocol?"https://":"http://","widget.surveymonkey.com/collect/website/js/tRaiETqnLgj758hTBazgd_2Fw5nxAtNDAAqLsYqzVv_2FShi5yryjY3psD6EYInvUCYX.js"].join(""),a.parentNode.insertBefore(c,a))})(window,document,"script","smcx-sdk");';
echo '</script>';
}
?>
我在这里发现了一些类似的问题,但 none 非常适合我的情况,我也尝试了他们的一些答案推荐,但它们似乎不起作用。
任何帮助将不胜感激,我觉得这很简单,我只是把事情复杂化了。希望我已经为大家提供了足够的信息!
PHP 解决办法:
$active_location = $_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
$host_name = $_SERVER['HTTP_HOST'];
if ($active_location == $host_name || $active_location == $host_name.'/'){
//stuff you want to do
}
$active_location
将 return 当前完整 url 没有 ssl 服务 $host_name
将给出没有 ssl 的主机名。如果它们相同,代码将 运行.
OR (||)
语句是因为在某些情况下主页会有一个 /
而你看不到它,如果你不放置语句代码将不会 运行是一些情况。
我正在尝试在 PHP 中创建一个声明,使调查猴子弹出窗口出现在网站的主页上,而不是其他页面上。
我已经尝试了下面的代码和它的不同变体来尝试让它工作。我可以通过将元素放入网站的 中来将弹出窗口添加到整个网站,但是当我试图让它只出现在主页上时,什么也没有显示。
我试过只使用一个 'echo' 而不是将其分成三个,并且还使用 /index.php 而不是 /.
<?php
if ($_SERVER["SCRIPT_NAME"] == '/') {
echo '<script>';
echo '(function(t,e,s,o){var n,a,c;t.SMCX=t.SMCX||[],e.getElementById(o)||(n=e.getElementsByTagName(s),a=n[n.length-1],c=e.createElement(s),c.type="text/javascript",c.async=!0,c.id=o,c.src=["https:"===location.protocol?"https://":"http://","widget.surveymonkey.com/collect/website/js/tRaiETqnLgj758hTBazgd_2Fw5nxAtNDAAqLsYqzVv_2FShi5yryjY3psD6EYInvUCYX.js"].join(""),a.parentNode.insertBefore(c,a))})(window,document,"script","smcx-sdk");';
echo '</script>';
}
?>
我在这里发现了一些类似的问题,但 none 非常适合我的情况,我也尝试了他们的一些答案推荐,但它们似乎不起作用。
任何帮助将不胜感激,我觉得这很简单,我只是把事情复杂化了。希望我已经为大家提供了足够的信息!
PHP 解决办法:
$active_location = $_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
$host_name = $_SERVER['HTTP_HOST'];
if ($active_location == $host_name || $active_location == $host_name.'/'){
//stuff you want to do
}
$active_location
将 return 当前完整 url 没有 ssl 服务 $host_name
将给出没有 ssl 的主机名。如果它们相同,代码将 运行.
OR (||)
语句是因为在某些情况下主页会有一个 /
而你看不到它,如果你不放置语句代码将不会 运行是一些情况。