是否有可能有一个链接不可见/隐藏在网页源,但活跃时,按钮点击
Is it possible to have a link invisible/hidden in webpage source but active when button click?
嘿,伙计们,我想知道,有没有可能有一个链接不可见/隐藏在网页源,但活跃时,一个按钮被点击?我为什么想要这个?因为我正在创建一个网页类型的游戏,但我不希望用户能够只是右键单击,看到源代码(我不是说禁用右键),所以他们可以看到下一个URL,并手动输入到网页浏览器,以获得下一个页面/水平,我希望它是给他们当他们完成挑战,点击提交按钮。对不起,如果我没有很容易地解释这一点,如果你不太明白,只是说,我会尝试重新表达我想说的话:)
最好使用Jquery,包括PHP
<script language="JavaScript">
function TheFunction(answer) {
if (answer == "theanswer") {
alert("Well done, time for level 2.");
location.href = "<?php echo "hi"; ?>.php"; // <-- or somthing like this
}
else {
alert("Wrong answer.");
}
}
</script>
您可以使用xmlhttprequest (AJAX)从php脚本中获取下一个URL,如下所示:
$urls = array(
1 => 'myGame1.php',
2 => 'thisIsPage2.php',
3 => 'iLikeJavaScript.html'
);
if (isset($_POST['nextPageUrl']), is_int($_POST['nextPageUrl'])) {
echo $urls[$_POST['nextPageUrl']];
}
在这个例子中,你有一个包含所有url的数组,只回显你需要的那个。或者,您可以从数据库中加载下一页,生成一个新的随机文件,无论您需要什么。
在你的javascript方面,你使用这样的东西(假设你使用的是jQuery,"正常"javascript也是可能的,只是有点复杂):
function TheFunction(answer) {
if (answer == "theanswer") {
alert("Well done, time for level 2.");
$.ajax({
url: 'yourPage.php',
data: { nextPageUrl: 2 }
}).done(function (msg) {
location.href = msg;
});
}
else {
alert("Wrong answer.");
}
}
这只是实际解决方案的一种方法。每个客户端验证都可以被绕过,因此您不妨检查php文件中的答案,以确保没有人手动执行AJAX请求。
这可以简单地通过修改php文件,并通过ajax(扩展data
-object)将答案传递给脚本来完成。
$urls = array(
1 => array('url' => 'myGame1.php', 'answer' => 'theanswer'),
2 => array('url' => 'thisIsPage2.php', 'answer' => 'theanswer2'),
3 => array('url' => 'iLikeJavaScript.html', 'answer' => 'theanswer3'),
);
if (isset($_POST['nextPageUrl']), is_int($_POST['nextPageUrl'])) {
if ($urls[$_POST['nextPageUrl']]['answer'] == $_POST['thisAnswer'])
echo $urls[$_POST['nextPageUrl']]['url'];
}
你可以尝试从一个根本不包含下一个按钮/链接的网页开始,然后使它,当他们完成"挑战"时,网页更改为有下一个挑战链接的版本。
你可以使用javascript (jQuery: http://www.w3schools.com/jquery/jquery_hide_show.asp)
但这并不能保护你的网页,因为人们总是可以看到javascript。你必须保护php中的下一个页面/级别。
这是可能的…假设你有一个mysql数据库…
你必须把你的链接放进去……例如,看看我为你写的这段代码:
$query = "select * from lnkstabl";
$res = mysql_query($query);
$row = mysql_fetch_array($res);
echo '<a href="http://' . $row['link'] . '">go to link</a>';
您可能正在考虑这样的事情:
在服务器端,像这样创建一个包含javascript代码的文件JS.php
:
echo '
function Try(answer) {
if (answer == "theanswer") {
alert("Well done, time for level 2.");
location.href = "<?php echo "hi"; ?>.php"; // <-- or somthing like this
}
else {
alert("Wrong answer.");
}
}';
header('Content-Type: text/javascript');
客户端
<script src="path/to/JS.php"></script>
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 多个单选按钮组相互干扰
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- Javascript按钮下拉列表
- jquery试图按名称获取按钮位置
- 漂亮照片图片库中的Facebook赞按钮
- 扩展移相器按钮类不工作
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 单击按钮以等待单击按钮
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何从querySelectorAll中获取按钮类型
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 按下按钮时保存cookie
- 是否可以禁用jquery中的单个单选按钮
- ASP.NET通过单击JavaScript按钮触发c#事件
- 当我点击jsf中的primefaces命令按钮时,如何获得点击事件
- 点击按钮输入不起作用
- 是否有可能有一个链接不可见/隐藏在网页源,但活跃时,按钮点击