繁体   English   中英

将一个名为JavaScript的文件中的函数应用于PHP echo

[英]Apply a function from a called JavaScript file to a PHP echo

我已经下载了JS To Title Case以申请我的网站。 它像报纸一样大写文本字符串。 我在PHP文件的开头调用它:

<script src="../../js/to-title-case.js"></script>

我想将.toTitleCase()添加到此字符串,因此它将JS应用于标题:

<?php echo get_inspiry_custom_excerpt( get_the_title(), 7 ); ?>

PHP是其中的一部分:

<h4 class="entry-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php echo get_inspiry_custom_excerpt( get_the_title(), 7 ); ?></a></h4>

但是,无论我在哪里添加它,页面都会中断并且不会加载。

我怎样才能做到这一点?

Marc B在评论中可能意味着什么:如果这不是nodejs + php的混合体,那么你就是以错误的方式混合东西。

PHP在服务器端执行,并在您的情况下创建HTML页面。 然后在浏览器中将此页面和引用的JavaScript加载到客户端 “toTitleCase()”方法根本不在PHPs执行环境的范围内,而作者“......字符串......”指的是JavaScript字符串,而不是PHP字符串。

由于PHP错误而导致“未加载”的页面(如果您没有设置错误报告,则可能无法显示)。

解决问题的一种方法是通过PHP生成JS代码,这将在客户端加载时执行。 看起来应该是这样 ,假设get_inspiry_custom_excerpt和get_the_title是真正的PHP函数:

<h4 class="entry-title">
  <a href="<?php the_permalink(); ?>" rel="bookmark" id="custom_excerpt">
    <?php echo get_inspiry_custom_excerpt( get_the_title(), 7 ); ?>
  </a>
</h4>
<script>
  var element = document.getElementById('custom_excerpt');
  var text = element.innerText || element.textContent || '';
  element.innerHTML = text.toTitleCase();
</script>

这可能远非理想,但应该说明如何做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM