我正在使用uzbl-browser作为售货亭计算机。当用户打开某个URL时,我想将"关闭"(或杀死)发送给我的Uzbl-Browser实例。最好的方法是什么?
我的目标不是。我有一项调查,我会在注销前显示。如果用户关闭它,请注销。否则等到调查的最后一页(通过"某些URL"识别)和关闭UZBL并注销我的解决方案是。
将此添加到配置文件
@on_event LOAD_FINISH spawn @scripts_dir/survey_end_check.sh
和我的Suression_end_check.sh
#!/bin/sh
if [ $UZBL_URI = "http://yoururl" ];
then
sleep 5
echo "exit" | socat - unix-connect:$UZBL_SOCKET
fi
变体是为了在最后一页中找到某些字符串。Grep之后,$?如果GREP成功
是0#!/bin/sh
end=`echo "@<document.getElementsByClassName('success')[0].innerText>@" | socat - unix-connect:$UZBL_SOCKET | grep -q 'Success!'; echo $?`
if [ $end -eq 0 ];
then
sleep 5
echo "exit" | socat - unix-connect:$UZBL_SOCKET
fi
如果我是该计算机上的用户,并且有任何窗口,是否浏览器,请在不警告的情况下关闭自己,我会考虑此应用程序崩溃并重试。
将这种行为强加于用户可能不是最有用的选择。
您想看的是一个可以过滤内容的透明代理。这就是大多数公司限制员工访问某些页面的方式。
squid是通常用于此的代理解决方案的一个示例,通常与squidguard一起设置。本指南将使您入门。
另外,您也可以使用将所有过滤的主机名重定向到给定页面的DNS解决方案。Dansguardian在这里是可能的。
在stackoverflow上进行搜索也将为您提供答案,因为一些用户已经提出了类似的问题。