我正在尝试帮助遇到网站在触摸屏自助服务终端浏览器上正常显示的问题的人。
他们目前有一个网站,该网站运行基于 Lithium 框架构建的自定义 CMS 驱动站点,该框架非常适合他们并满足他们的需求。然而,他们想要做的是通过拥有一个触摸屏信息亭来扩展这一点,以便公众可以在访问他们的同时查看网站,而不是像往常一样通过互联网。
问题是,该站点可以在台式机和移动设备上使用,但尝试使用触摸屏却具有挑战性,因为一些文本/链接等非常小。我正在寻找的是一种让一台机器以更有用的方式显示网站的方法。
在测试期间,我沿着开发一个单独的 CSS 工作表的方向前进,它通过使用更友好的触摸交互来解决其中的一些问题。它似乎工作正常。
我苦苦挣扎的地方是如何让样式表只应用到那台计算机而不是所有连接的人?目前,我使用了一些 php/javascript 来检查请求机器的 IP 地址,如果它与自助服务终端的 IP 地址相匹配,那么它会在该部分中包含一个指向触摸友好 CSS 文件的单独链接。没问题-但是,我不确定这在“野外”是否实用。
它将驻留的互联网连接没有静态 IP 地址,因此我不能保证保持不变。我可以使用另一个技巧吗?我确实想知道匹配主机名,但据我所知,没有办法获取请求计算机的主机名。
我可以完全访问服务器和信息亭。服务器是标准的 LAMP 设置,Kiosk 是 Windows 8.1 机器,带有单触摸屏 (ELO),运行 riro 的 Metro 应用 Kiosk Browser。
最佳答案
因为您可以使用 php 并可以访问信息亭计算机,所以我会使用信息亭专用的配置文件。
创建一个文本文件并将其保存为例如 kiosk.txt。
在 kiosk.txt 中放置一行文本以测试它是否存在。
示例:售货亭
- 检查 index.php 文件以确定 kiosk.txt 文件在客户端计算机上是否存在正确的值。
PHP 看起来像这样放置在 index.php 文件的头部部分。
示例 PHP:
//get the contents of the kiosk.txt php file
//you will have to use the path that you saved kiosk.txt to below
$kiosk = file_get_contents("kiosk.txt");
//place a check to see if the kiosk.txt file contains the word kiosk
if(strpos($kiosk,"kiosk") !== false){//begin if then else
//echo the path to your css file to load it for the kiosk specifically
//make sure you replace the href value with correct style sheet path below
echo "<link href='http://pathToYourStyleSheet.css' rel='stylesheet'>"
}
else{
//echo the non kiosk stylesheet
}//end if then else
或者,您可以将 http get 变量传递给索引文件,这可能会更好,因为您是从另一台计算机而不是 kiosk 提供 php。
使加载索引文件的快捷方式或链接看起来像这样:
然后在您的 index.php 文件中检查 kiosk get 变量是否为真
//get the kiosk variable value
$kiosk = $_GET["kiosk"];
//check to see if its true
if($kiosk === "true"){//begin if then else
//echo the path to your css file to load it for the kiosk specifically
//make sure you replace the href value with correct style sheet path below
echo "<link href='http://pathToYourStyleSheet.css' rel='stylesheet'>"
}
else{
//echo the non kiosk stylesheet
}//end if then else
关于javascript - 为特定的信息亭计算机使用单独的 CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27399343/