相关疑难解决方法(0)

为什么Google会在(1)之前提前; 他们的JSON回复?

为什么Google会while(1);在其(私人)JSON响应前加上?

例如,这是在Google日历中打开和关闭日历时的响应:

while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],
  ['remindOnRespondedEventsOnly','true'],
  ['hideInvitations_remindOnRespondedEventsOnly','false_true'],
  ['Calendar ID stripped for privacy','false'],['smsVerifiedFlag','true']]]]
Run Code Online (Sandbox Code Playgroud)

我认为这是为了防止人们eval()对它进行操作,但你真正需要做的就是更换while然后你就可以了.我认为eval预防是为了确保人们编写安全的JSON解析代码.

我已经在其他几个地方看到了这种情况,但谷歌(邮件,日历,通讯录等)的情况更是如此.奇怪的是,谷歌文档开始了&&&START&&&,谷歌联系人似乎开始while(1); &&&START&&&.

这里发生了什么?

javascript security ajax json

3940
推荐指数
7
解决办法
51万
查看次数

将iframe的内容而不是src指定到页面

我目前正在处理一个表单,除了表单的所有正常字段外,还有上传图片的文件输入,onchange将图片提交给iframe,然后将上传的图片加载到带有要修改的字段的表单中对于他们(如名称和地理定位).由于我无法嵌套表单,file_input也包含在iframe中,所以最后我在iframe中使用了iframe.如此示意,我有这样的事情:

<form>
<!-- LOTS OF FIELDS!! -->
<iframe src="file_input_url">
<!-- iframe which loads a page of a form with a file input-->
</iframe>
</form>
Run Code Online (Sandbox Code Playgroud)

和iframe中加载的html类似(忽略html,head和body标签)

<form target="upload_iframe">
<input type="file" onchange="this.form.submit()">
</form>
<iframe name="upload_iframe"></iframe>
Run Code Online (Sandbox Code Playgroud)

这很好用,除了加载第一个iframe需要几秒钟,因此文件输入不会加载到页面的其余部分,并且在视觉上并不理想.我可以解决这个问题,如果可以指定iframe内容而无需加载另一个页面(在第一个iframe中由'file_input_url'指定).

所以,我的问题是,有没有办法在同一个文档中指定iframe内容,或者只能用src属性来表示,所以需要加载另一个页面?

html iframe

79
推荐指数
4
解决办法
10万
查看次数

推荐的2012年jQuery模板?

jQuery模板已经被弃用了一段时间了.

我有一些JavaScript对象形式的数据,我想格式化为HTML并附加到DOM.这些天最好的办法是什么?

  1. 我应该建立一个HTML字符串吗?
  2. 我应该通过jQuery创建元素$('<li>',{id:'my-'+Id}).append($('<span>').text(myText))吗?
  3. 是否有替代或成熟的jQuery模板替代品?

html jquery templates json

55
推荐指数
4
解决办法
6万
查看次数

如何在HTML页面中正确存储HTML模板?

我有一些小模板字符串,它们将通过同一页面上的Mustache.js呈现.我不需要为模板创建单独的html文件.

存储模板的选项:

  1. 存储在javascript变量中:破解多行字符串,大量转义引号.

  2. 存储为隐藏div的innerHTML.

我尝试了方法#2,但它似乎无法正常工作.

小提琴:http: //jsfiddle.net/RHwnq/2/

<html>
<head></head>
<body>
<div id='templates' class='hide' align="">
         <div id='tableTemplate'>
            <table class="table">
                 {{#name_list}}
                  <tr><td> {{name}} </td></tr>
                {{/name_list}}
            </table>
         </div>
</div>

<script>
 var template = $('#tableTemplate').html();
 console.log(template);
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这个日志:

{{#name_list}}
  {{name}} 
{{/name_list}}
<table class="table"><tbody><tr><td></td></tr></tbody></table>
Run Code Online (Sandbox Code Playgroud)

代替 :

  <table class="table">
                     {{#name_list}}
                      <tr><td> {{name}} </td></tr>
                    {{/name_list}}
  </table>
Run Code Online (Sandbox Code Playgroud)

这可能是由于浏览器进行了一些标记更正.在HTML页面中存储HTML模板有哪些其他好的技巧?

javascript mustache

10
推荐指数
2
解决办法
4958
查看次数

使用Handlebars.js时如何将模板js外包到不同的文件

我有这个模板脚本

<script id="some-template" type="text/x-handlebars-template">
   {{#users}}
     {username}
     {email}
</script>
Run Code Online (Sandbox Code Playgroud)

我想将它外包给一个名为"user_template.js"的文件,它看起来像这样:

   {{#users}}
     {username}
     {email}
Run Code Online (Sandbox Code Playgroud)

并在主index.html中建立此链接:

<script id="some-template" type="text/x-handlebars-template" src="user_template.js"></script>
Run Code Online (Sandbox Code Playgroud)

问题是 - 它不起作用 - 我该怎么办?

html javascript jquery mvvm handlebars.js

5
推荐指数
1
解决办法
1799
查看次数

为什么这些空脚本标签会阻止我的页面工作?

在此代码的基础上有以下 3 个脚本标记。我不希望它们出现在我的 html 文档中,但如果我尝试删除它们,它们会阻止我的 <script type="text/template" id="login-template">表单正常工作。基本上它似乎隐藏了输入字段。

为什么是这样?

我什至删除了 ` 中的 JS 实际代码来尝试解决这个问题。

   <script type="text/template" id="manage-todos-template"></script>
   <script type="text/template" id="item-template"></script>
   <script type="text/template" id="stats-template"></script>
Run Code Online (Sandbox Code Playgroud)

<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <meta name="description" content="fresh Gray Bootstrap 3.0 Responsive Theme "/>
    <meta name="keywords" content="Template, Theme, web, html5, css3, Bootstrap,Bootstrap 3.0 Responsive Login" />
    <meta name="author" content="Adsays"/>
    <title>Parse JavaScript Todo App</title>
    <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
    <script src="scripts/underscore-1.1.6.js"></script>
    <script src="http://www.parsecdn.com/js/parse-1.2.13.min.js"></script>
    <script src="scripts/todos.js"></script>

    <link rel="shortcut icon" href="favicon.png"> 

    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.css" rel="stylesheet"> …
Run Code Online (Sandbox Code Playgroud)

html javascript parsing backbone.js parse-platform

5
推荐指数
1
解决办法
1123
查看次数

在HTML Text上使用Javascript的eval()

我正在玩弄HTML和Javascript中的一些基本结构(即,我是一个HTML/Javascript n00b),并且有一个功能我似乎无法正确实现.简而言之,我想从HTML页面的主体中获取文本并使用Javascript(eval()或new Function())对其进行评估.要看到我对eval()的使用是正确的,我首先尝试了以下代码,它按预期工作(并显示值5):

<script>
window.onload = function () {
    eval("var t = function () { if (5>0) return 5; }();");
    document.body.innerHTML = t;
}
</script>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试实现从HTML中获取"代码"并运行它的目标时,这对我来说似乎失败了.这是一段不起作用的代码(我尝试过很多变种):

<script>
window.onload = function() {
    var x = document.getElementById("myP").innerHTML;
    eval("var e = " + x + ";");
    document.body.innerHTML = e();
}
</script>

<body>
    <p id="myP">function () { if (5>1) { return 5; } } </p>
</body>
Run Code Online (Sandbox Code Playgroud)

我测试了变量x确实包含了正文中所需的"代码".但由于某种原因,上述情况将无法正常运作; 它只会显示正文并eval在更新innerHTML后忽略它和语句.

更奇怪的是,当我尝试"更复杂"的代码时,它工作正常,例如:

<script>
window.onload = function() {
    var x = document.getElementById("myP").innerHTML;
    eval("var e …
Run Code Online (Sandbox Code Playgroud)

html javascript eval

2
推荐指数
1
解决办法
2544
查看次数