【发布时间】:2011-07-26 17:13:38
【问题描述】:
我正在使用 Jaipho 从自定义 Wordpress 插件将图像显示到移动图库。使用 Jaipho 库的 wordpress 主题使用 WP-mobile-detector 插件显示。
我遇到的问题是当我使用 php 收集照片的 URL 以回显要由 javascript 解析的函数时。我从 Safari 的元素检查器中获取生成的静态 javascript 代码并将其粘贴到我的代码中,注释掉 php,它可以在任何地方工作。 iOS 版 Safari 似乎不喜欢 php 生成的 javascript 代码。
- HTML 5
<DOCTYPE html><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
- PHP 5.2.6
- Wordpress 3.2.1
当它起作用时:
- 在 Safari 上将用户代理设置为 iPhone
-
静态代码替换 php 生成的代码
$imageArray = $case->images_assc_array(); $i = 0; foreach($imageArray['views'] as $view_name => $view_images) { $before_img = $view_images['before']; $after_img = $view_images['after']; echo "dao.ReadImage($i,'".$before_img->medium_size()."','".$before_img->small_size()."','".ucfirst($view_name)." Before','".$case->description."');"; $i++; echo "dao.ReadImage($i,'".$after_img->medium_size()."','".$after_img->small_size()."','".ucfirst($view_name)." After','".$case->description."');"; $i++; }
预期的示例生成输出:
dao.ReadImage( 0,'/wp-content/uploads/rmgallery_images/medium/408/before-front.jpg','/wp-content/uploads/rmgallery_images/small/408/before-front.jpg','Front Before','38 year old who underwent a tummy tuck.');
dao.ReadImage( 1,'/wp-content/uploads/rmgallery_images/medium/410/after-front.jpg','/wp-content/uploads/rmgallery_images/small/410/after-front.jpg','Front After','38 year old who underwent a tummy tuck.');
dao.ReadImage( 2,'/wp-content/uploads/rmgallery_images/medium/409/before-side.jpg','/wp-content/uploads/rmgallery_images/small/409/before-side.jpg','Side Before','38 year old who underwent a tummy tuck.');
dao.ReadImage( 3,'/wp-content/uploads/rmgallery_images/medium/411/after-side.jpg','/wp-content/uploads/rmgallery_images/small/411/after-side.jpg','Side After','38 year old who underwent a tummy tuck.');
【问题讨论】:
-
发生任何 javascript 错误?
-
PHP 日志告诉你什么?它输出任何错误吗?如果没有,是否输出任何js错误?
-
@Jrod iOS 控制台 Javascript 错误:
SyntaxError: Parse error on line 224即var dao = new Jph_Dao();,就在我的 php 之前的行。 -
@jackJoe 日志中没有错误
-
永远不要将 PHP 中的数据直接输出到 javascript 文本中——引入语法错误太容易了,这将彻底杀死你的 javascript。始终首先通过 json_encode() 传递数据,因此您始终会生成语法上有效的 JS 代码。
标签: php javascript iphone wordpress