在PHP中使用JS来解决if window.width问题

时间:2013-09-30 01:45:10

标签: javascript php jquery

我想根据用户是否在移动设备上(小于768px)或更大来echo部分代码。

我做了以下事情:

            <?php  
              if ( is_home() ) {
            ?>
              <script type="text/javascript">
              if ($(window).width() < 768) {
                  document.write("<?php echo my_shortcode("[mobile-slider]"); ?>");
              } else {
                  document.write("<?php echo my_shortcode("[desktop-slider]"); ?>");
              }
              </script>
            <?php                    
            } else {
              //do the stuff for the other pages

            } ?>

但现在当主页呈现时会显示"); } else { document.write(",然后显示主页滑块,然后显示"); }。知道为什么吗?

JS错误

  

SyntaxError:unterminated string literal

     

文件撰写('

HTML输出 - 似乎是在添加换行符,我认为这会破坏脚本?

<script type="text/javascript">
if ($(window).width() < 768) {
document.write("
<!--slider--> 

3 个答案:

答案 0 :(得分:0)

"<?php echo my_shortcode("[mobile-slider]"); ?>"

改变

"<?php echo my_shortcode('[mobile-slider]'); ?>"
                         ^               ^  // changed quotes here

或转义引号

"<?php echo my_shortcode(\"[mobile-slider]\"); ?>"

答案 1 :(得分:0)

试试这个:

document.write(<?php echo "\"[mobile-slider]\""; ?>);

答案 2 :(得分:0)

你的引言肯定是关闭的,正如其他人提到的那样,你的内部引号必须与外部引号不同,或者被转义。

您是否可以在主文档中运行您的php函数(在javascript之外),然后选择使用javascript显示/隐藏/更改其内容?

如果不可能,请尝试直接调用您的函数,而不是通过do_shortcode挂钩。

作为最后的替代方案,您可能需要在此处使用ajax调用。我不知道您能够按照您尝试的方式拨打短码。