作为家庭作业的一部分,我试图在浏览器环境中实现一个类似于 Firebug 中可用的 JavaScript 控制台。从我收集到的情况来看,eval()这似乎是最简单的方法。然而,即使是非常基本的用户输入,我的代码也会遇到一些问题。例如:
var number = 5;\nRun Code Online (Sandbox Code Playgroud)\n\n导致语法错误而不仅仅是评估undefined像 Firebug 中那样进行评估。因此,我似乎根本无法在 eval 字符串内声明变量。如果我做一些更简单的事情,例如:
3 + 4 * Math.PI\nRun Code Online (Sandbox Code Playgroud)\n\n它工作正常。我试图找到一个有人使用的例子eval()在包含变量声明的字符串上使用的示例,但我似乎找不到任何人这样做。
在将用户输入编译成新字符串之前,我是否需要使用正则表达式完全解析用户输入eval()?
能把eval()分号理解为换行符吗?我也找不到使用这些的人。
function runMiniFirebug() {\n var userInput = document.getElementById("user-input").value;\n try {\n var userOutput = eval(\'(\' + userInput + \')\');\n document.getElementById("js-output").innerHTML += \'<p class="input">>>>\' + userInput + \'<p>\';\n document.getElementById("js-output").innerHTML += \'<p class="ouput">\' + userOutput + \'<p>\';\n }\n catch(error) {\n document.getElementById("js-output").innerHTML += \'<p class="input">>>>\' + …Run Code Online (Sandbox Code Playgroud) 我真的应该升级到Firefox 3,但我非常依赖Firebug正常工作.
我知道有一个版本的Firebug可以与Firefox 3一起使用,但是上次我看,它似乎有问题.
那么,对于那些已经取得成功的人来说,Firefox 3上的Firebug是否准备好迎接黄金时段?
<script type = "text/javascript">
var First_Array = new Array();
function reset_Form2() {document.extraInfo.reset();}
function showList1() {document.getElementById("favSports").style.visibility="visible";}
function showList2() {document.getElementById("favSubjects").style.visibility="visible";}
function hideProceed() {document.getElementById('proceed').style.visibility='hidden';}
function proceedToSecond ()
{
document.getElementById("div1").style.visibility="hidden";
document.getElementById("div2").style.visibility="visible";
document.getElementById("favSports").style.visibility="hidden";
document.getElementById("favSubjects").style.visibility="hidden";
}
function backToFirst () {
document.getElementById("div1").style.visibility="visible";
document.getElementById("div2").style.visibility="hidden";
document.getElementById("favSports").style.visibility="visible";
document.getElementById("favSubjects").style.visibility="visible";
}
function reset_Form(){
document.personalInfo.reset();
document.getElementById("favSports").style.visibility="hidden";
document.getElementById("favSubjects").style.visibility="hidden";
}
function isValidName(firstStr) {
var firstPat = /^([a-zA-Z]+)$/;
var matchArray = firstStr.match(firstPat);
if (matchArray == null) {
alert("That's a weird name, try again");
return false;
}
return true;
}
function isValidZip(zipStr) {
var zipPat =/[0-9]{5}/;
var …Run Code Online (Sandbox Code Playgroud) 我去了谷歌,打开了我的萤火虫.我开始键入"in",然后检查Firebug的"NET"选项卡,并发送了几个新的GET请求以获取搜索自动完成建议列表.
喜欢:
GET http://clients1.google.com/complete/search?hl=en&client=hp&expIds=17259,17315,23628,24549,26637,26761,26849,26869,27386,27404&q=i&cp=1
Run Code Online (Sandbox Code Playgroud)
但它们被归类为"JS"部分,而不是"XHR" - 为什么会这样?不是谷歌在幕后制作AJAX GET请求吗?
Firebug报告说
$未定义[打破此错误] $(function(){
我有一个简单的index.php页面,它包含php包含我需要的内容.
内容如下:
<script type="text/javascript">
$(function(){
$("#ipad").submit(function() {
$.post("ipadcheck.php", $("#ipad").serialize(),
function(data) {
if(data.error == 'TRUE') {
$("#results_ajax").html("<div class='AppleRedBold'>Sorry There were Errors: " + data.error_message + "</div>");
} else {
$("#results_ajax").html("<div class='AppleRedBold'>" + data.display + " </div>");
}
}, "json");
return false;
});
});
</script>
<div class="paragraph_style" id="results_ajax"></div>
<div class="paragraph_style">
<form id="ipad" name="ipad">
<label class="paragraph_style" for="txtZip">Zip Code: </label>
<input class="searchBox Black" id="txtZip" name="txtZip" type="text" />
<br /><br />
<input type="submit" value="Submit">
</form>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我在其他地方这样做,我很好.我不明白错误.....
我正在尝试使用ruby hpricot库从在线htmls中提取一些数据.我使用firefox扩展fire bug来获取所选项目的xpath.
生成的xpath表达式中始终存在额外的tbody标记.在某些情况下,我必须从表达式中删除tbody标记以获取结果,而在其他情况下,我必须保留标记以获得结果.
我只是无法弄清楚何时保留tbody标签以及什么时候不要.
我正在学习HTML5和Javascript,我正试图在画布上绘制图像.如果我在打破下面标记的行后单步执行代码,我有以下代码绘制图像.如果我不调试那么根本不绘制图像.我究竟做错了什么?Firefox 10与FireBug 1.9.
请注意,虽然有一个循环来处理多个图像,但我只选择了一个.我想如果一个人不工作,那么一百个也不会工作.;-)
<!DOCTYPE html>
<html>
<body>
<input type="file" id="files" name="files[]" multiple />
<canvas id="picCanvas" />
<script>
function handleFileSelect(evt) {
var files = evt.target.files;
// Loop through the FileList and render images
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function (theFile) {
return function (e) {
var img = document.createElement('img'); // …Run Code Online (Sandbox Code Playgroud) 我正在努力防止我正在构建的webproject中的欺诈行为.该项目是一个包含多个网站的游戏.
每个网站都会对每个网页浏览进行ajax检查,以查看我服务器上的网页,以获取游戏的状态更新.响应页面,比如www.domain.com/response.cfm(它是coldfusion)通常不会返回任何内容,但是在游戏时间范围内的某个时间点,它将显示带有信息的JSON字符串.然后,此信息将由网站上包含的脚本使用.
因此,网站A已被浏览100次(其所有页面),这将产生100个ajax调用.
我遇到的问题是机器人也可以检查ajax目的地,并且速度更快.现在我可以检测到一个机器人,或者通过使用会话或检查cookie来使他变得困难,但是......
最大的问题是我发现你可以在Firebug脚本控制台或Safari控制台上做很多事情.可能也是Chrome.
使用此控制台,他们甚至可以规避跨域限制.我创建了一个简单的脚本,它对Ajax页面进行了几次调用,当我首先访问同一个域时,然后使用控制台......没有跨域限制.并且你执行所有类型的JavaScript,所以本质上像我这样的人可以使用javascript控制台在游戏中进行欺诈,该控制台将他视为常规浏览器用户.
我现在的问题是:有谁知道如何防止这种情况?我试图禁用控制台的使用,但我认为我不能.可以检测控制台是否处于活动状态,然后禁用我的脚本,这样游戏就不起作用了.但我认为他们可以手动在控制台中加载脚本源,然后游戏就可以了.
看起来控制台是一件美丽的事情,但现在对我来说是一场噩梦,以防止人们在我正在创造的游戏中作弊.
希望有人有建议.
ps:我当然试图实现som服务器端检查以检测作弊,但大多数时候它不是实时的.
轮询该服务器页面可以揭示将获得作弊者知识或进展的信息.
因此,我必须通过监视将在特定时间显示信息的服务器页面来阻止人们获得其他认真玩家之前的知识.我不希望他们自动轮询它,当信息显示时,发送自己的通知并检查网站.
所以我要做的是确保如果人们每秒有多次网页浏览,就会被阻止.此外,您需要一个cookie才能加入,您只需通过登录获得cookie.希望这将为我提供足够的工具,使其尽可能健壮.
感谢您的所有知识,人们.
我有这段代码:
$(function() {
$('.toolbar [id^=button]').on('click', function () {
$(this)
.css('background-color', '#559153')
.siblings("[id^=button]").css('background-color', '#88e885');
});
});?
Run Code Online (Sandbox Code Playgroud)
Firebug最后找到了一个非法的字符.没有炭.我怎么解决呢?
我的页面引用了jQuery,因为其他代码已经正常运行.但我需要添加一些新代码,并决定在编写代码之前尝试直接在Firebug中测试选择器.所以我去控制台输入我的选择器:
$("h3:contains('Keynote')");
Run Code Online (Sandbox Code Playgroud)
现在,这可能是也可能不是有效的选择器.在这一点上,我不在乎.当我按Enter键时,我收到以下错误:
TypeError:$不是函数
现在我知道如果你在页面上实际运行的代码中出现错误,通常是因为jquery没有被引用或运行(我们知道它是这样),或者因为与另一个库存在冲突.但直接在控制台中运行的代码会受到影响吗?如果是这样,我如何绕过它进行测试?我是否必须在Firebug中跳过这种方式测试,只需在我的文件中编写代码并从那里进行测试?
如果它有帮助,当我点击错误消息的链接时,这就是我得到的:
