小编Rob*_*b W的帖子

(Rails)什么是"RJS"?

我在博客文章和教程中看到了"RJS"和"RJS模板".我做了一个搜索,但我仍然不确定.它是Rails特有的技术,而不是像JSON或YAML这样的标准吗?

我知道它用于"生成JavaScript".它是否生成了需要Prototype和Scriptaculous库的通用JS或Rails特定的JS?

ajax ruby-on-rails rjs prototypejs

31
推荐指数
3
解决办法
2万
查看次数

JavaScript - 没有布尔值运行一次

有没有办法只运行一段JavaScript代码ONCE,而不使用布尔标志变量来记住它是否已经运行过?

特别是不是这样的:

var alreadyRan = false;
function runOnce() {
  if (alreadyRan) {
    return;
  }
  alreadyRan = true;

  /* do stuff here */

}
Run Code Online (Sandbox Code Playgroud)

我将有很多这些类型的功能,并保持所有布尔将是凌乱的......

javascript optimization

30
推荐指数
4
解决办法
1万
查看次数

在JavaScript中创建单个值数组

为什么以下代码显示undefined?我们不允许创建具有单个值的数组吗?放置两个值不会显示此错误.这是Javascript的问题吗?

<script>
var tech = new Array(21);
alert(tech[0]);
</script>
Run Code Online (Sandbox Code Playgroud)

javascript arrays

29
推荐指数
3
解决办法
5万
查看次数

使用Web Worker中的可传输对象

我目前有这个代码来创建一个Web Worker:

w = new Worker("webwork.js");
w.onmessage = function(event) { alert(event.data); }
Run Code Online (Sandbox Code Playgroud)

然后是webwork.jsWeb Worker 的代码:

self.onmessage = function(event) {
    //var ss=r;  //Causes error because of undefined
    var ss="";
    for(var currProp in event) {
        ss+=("event."+currProp+"="+event[currProp]+"\n");
    }
    postMessage(ss);
}
Run Code Online (Sandbox Code Playgroud)

现在我想ArrayBuffer用这段代码传输128兆字节:

var r = new ArrayBuffer(1048576*128);
w.postMessage(0, [r]);
Run Code Online (Sandbox Code Playgroud)

既然我已经转移了变量r,我该如何从Web Worker本身访问它.我已经试过event.r,只是r,self.r和喜欢尝试添加第二个函数参数为数组其他东西ArrayBuffers,但没有任何工程.

如何从Web Worker访问传输的变量?

javascript web-worker transferable

27
推荐指数
2
解决办法
2万
查看次数

Chrome扩展弹出窗口无效,点击事件无法处理

我创建了一个JavaScript变量,当我点击按钮时它应该增加1,但它没有发生.

这是manifest.json.

{
  "name":"Facebook",
  "version":"1.0",
  "description":"My Facebook Profile",
  "manifest_version":2,
  "browser_action":{
    "default_icon":"google-plus-red-128.png",
    "default_popup":"hello.html"
  }
}
Run Code Online (Sandbox Code Playgroud)

这是html页面的代码

<!DOCTYPE html>
<html>
<head>
<script>
var a=0;
function count()
{
  a++;
  document.getElementById("demo").innerHTML=a;
  return a;
}
</script>
</head>
<body>
<p id="demo">=a</p>
<button type="button" onclick="count()">Count</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我希望扩展程序向我显示a的值,并在每次单击扩展名或按钮时将其递增1

扩展的图片

javascript google-chrome button google-chrome-extension content-security-policy

27
推荐指数
1
解决办法
4万
查看次数

使用JavaScript将HTML转换为数据:text/html链接

这是我的HTML:

<a>View it in your browser</a>
<div id="html">
    <h1>Doggies</h1>
    <p style="color:blue;">Kitties</p>
</div>
Run Code Online (Sandbox Code Playgroud)

如何使用JavaScript来使href我的链接点的属性base64编码的网页,其来源是innerHTMLdiv#html

我基本上想要在这里完成相同的转换(选中base64复选框),但在JavaScript中除外.

html javascript url base64 data-uri

25
推荐指数
1
解决办法
6万
查看次数

奇怪的Chrome原型/ jQuery冲突

我们有一个依赖原型的遗留代码的应用程序,但是我们发现它对于我们想要使用它的大多数地方来说太"沉重",并且发现jQuery更适合我们的工作方式.所以我们正在迁移到jQuery以获得新功能.

与此同时,我们有几个页面需要加载两个库:

<script language="javascript" type="text/javascript"
        src="prototype-1.5.1.2.js"></script> 
<script language="javascript" type="text/javascript"  
        src="jquery-1.3.2.js"></script> 
<script language="javascript" type="text/javascript">
    $j = jQuery.noConflict();
</script> 
Run Code Online (Sandbox Code Playgroud)

(注意原型的旧版本,我们发现升级时出现的问题,无论如何我们都不想修复它们)

这适用于IE6,IE7,IE8-as-7和FX3,但在Chrome中加载它并且所有jQuery内容都失败了.

加载开发人员javascript控制台会显示以下错误:

Uncaught Error: NOT_SUPPORTED_ERR: DOM Exception 9 http://.../prototype-1.5.1.2.js (line 1272)
Uncaught TypeError: Object #<an Object> has no method 'ready' http://.../lib.js (line 161)
Uncaught TypeError: Object #<an Object> has no method 'slideUp' http://.../page.aspx (line 173)
... and so on - all the failures are missing jQuery methods
Run Code Online (Sandbox Code Playgroud)

所以这看起来像原型中的冲突导致jQuery对象的创建失败.

特定的原型问题似乎是Prototype.BrowserFeatures.XPath,当它不应该是真的时,因为不支持XPath document.evaluate.

好的,现在重新加载页面,打开javascript控制台 - 一切正常!WTF?关闭控制台,重新加载,然后再次失败.

只有在没有打开javascript控制台的情况下发生页面加载时才会发生故障 - 为什么会有任何区别?这看起来非常像Chrome中的错误.

有谁能解释出了什么问题?为什么原型中的错误会导致jQuery init失败?为什么在打开控制台的情况下加载页面会使其工作?

有人知道一个好的解决方法吗?(除了升级到prototype-1.6.0.3.js之外,它修复了这个问题,但在其他地方打破了遗留代码的负载)

jquery conflict google-chrome prototypejs

24
推荐指数
2
解决办法
5万
查看次数

在JS中获取元素标记名称的最佳方法是什么?

我想得到某个标签的名称(告诉它是否为div/input/span/p/so)

我发现有3个不同的属性给我标签名称:

tagName,nodeNamelocalName

我的问题是:哪一个在所有浏览器中最受支持?和/或是否有一种方法来获取Prototype中的标签名称(我看了但找不到)?

html javascript prototypejs

24
推荐指数
1
解决办法
4708
查看次数

将图像定位和覆盖在另一个图像上

看看微小的Facebook图标如何位于右下角的另一个图像上?

在此输入图像描述

如何使用HTML/CSS/Rails/Prototype组合来做到这一点!?一个例子就是很棒.也许在jsfiddle.net.

html css image

24
推荐指数
2
解决办法
8万
查看次数

Chrome扩展程序将外部JavaScript添加到当前页面的HTML

我通过Chrome扩展程序在页面末尾添加了一些外部JavaScript.然后外部JavaScript尝试将一些数据发布回服务器,但是没有发生.

JavaScript希望获取当前页面和引用者的URL并将其发回服务器.

任何人都可以请教我这里有什么问题,如果不可能这样我怎样才能将数据从当前页面发回服务器.

的manifest.json

{
  "name": "Website Safety",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The Website Safety Extension.",
  "browser_action": {
    "name": "View the website information for ",
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "background": {
  //  "scripts": ["refresh.js"]
    "page": "background.html"
  },
  "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'",
  //"background_page": "background.html"

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["contentScript.js"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在是contentScript.js

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-31046309-1']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
(function() {
var ga = …
Run Code Online (Sandbox Code Playgroud)

javascript dom google-analytics google-chrome-extension content-script

24
推荐指数
3
解决办法
3万
查看次数