0

I have a .js file that has a nice slide show layout and here is some of the code for it:

slide_links:'false',//Individual links for each slide (Options: false, 'num', 'name', 'blank')
    slides:[{image:'images/2.jpg', title:'Image Credit: John Doe'},
            {image:'images/3.jpg', title:'Image Credit: John Doe'},
            {image:'images/4.jpg', title:'Image Credit: John Doe'},  
            {image:'images/5.jpg', title:'Image Credit: John Doe'},
            {image:'images/6.jpg', title:'Image Credit: John Doe'}] 
});

});

I am wondering could I put a line of php like this in place of ONE of the 'images/2.jpg' lines to showcase a Group of images?

4

4 回答 4

3

可能的解决方法:

  • 使用 htaccess 规则在 JS 文件中运行 PHP,如下所示:

    AddType application/x-httpd-php .js    
    AddHandler x-httpd-php5 .js
    
    <FilesMatch "\.(js|php)$">
    SetHandler application/x-httpd-php
    </FilesMatch>
    
  • 使脚本内联到某个 php 文件

  • 通过 PHP 中的内联元素将数据放入变量中,并让外部静态 .js 文件获取它。
  • 将文件另存为 .php 而不是 .js 并:

在您的 PHP 文件中:

Header("content-type: application/javascript");

然后将您的文件链接为:

<script type="text/javascript" src="youfile.php"></script>
于 2013-06-26T18:46:47.990 回答
1

您确实可以,但您必须将文件命名为 .php。

然后,您可以运行代码并将输出更改为带有 Content-type 的 JavaScript。

header('Content-type: text/javascript');
于 2013-06-26T18:47:04.390 回答
1

好吧,Javascript 在浏览器读取之前只是文本。PHP 可以打印文本,所以答案是肯定的。不过,这个问题很大程度上取决于您可以修改什么。如果您在 JS 文件中定义幻灯片,如此处所示,可能会更困难一些。但是,如果您只是在 JS 文件中定义幻灯片代码,并在内联脚本中声明“幻灯片”对象,那么 PHP 更改它会变得更容易。这不是您要问的问题,但这只是一个可能的设计建议,可能会更简洁一些。一个非具体的例子,你可以如何做给你一个想法:

<script src="lib_slideshow.js"></script>
<script type="text/javascript">
    var slides = [{image:'images/2.jpg', title:'Image Credit: John Doe'},
    <?php
        echo "{image:'images/customPHPDeterminedImage.jpg', title: 'Image Credit: PHP'},";
    ?>
            {image:'images/3.jpg', title:'Image Credit: John Doe'},
            {image:'images/4.jpg', title:'Image Credit: John Doe'},  
            {image:'images/5.jpg', title:'Image Credit: John Doe'},
            {image:'images/6.jpg', title:'Image Credit: John Doe'}];
    libSlideshow.setup(slides);
</script>

可能还有另一种可能的方法涉及通过 PHP 文件重写 JS,可能是通过使用.htaccess文件拦截请求,但那时我觉得它会变得混乱。

于 2013-06-26T18:48:42.843 回答
1

您可以通过以下方式做到这一点:

  1. 执行一个生成你的 js 脚本的 php 脚本
  2. 进行 ajax 调用以获取要在 js 上使用的信息
于 2013-06-26T18:44:05.370 回答