小编Rya*_*yan的帖子

Javascript:变量泄漏到全局范围(Firefox插件)

我将我的插件提交给AMO目录,编辑回来了:

There are still a number of variables being leaked to the global scope, 
probably because you're using them undeclared like...
Run Code Online (Sandbox Code Playgroud)

他没有提到所有的问题变量,无论如何都知道哪些在全球范围/被泄露?

我有一大堆变量,它们需要花费很长时间才能确保它们用"var"正确声明.

请帮忙!

谢谢!

javascript firefox global-variables firefox-addon

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

Javascript,调用函数

从以前的帮助我使用这样的东西:

(function (global) {

  // your code here

  global.myGlobalVar = myVar

}(this));
Run Code Online (Sandbox Code Playgroud)

哪个适用于变量,但我如何为函数执行此操作?

例如我试过这个:

(function (global) {

  function something()
{
// do something, return something
}

  global.something()= something();

}(this));
Run Code Online (Sandbox Code Playgroud)

但那不起作用:(

如何让它与函数一起使用?

谢谢!

编辑:

请注意,这是在html页面中调用的,首先我这样做:

<script language="Javascript" src="four.js">
Run Code Online (Sandbox Code Playgroud)

然后

<body onload="javascript:something()">
Run Code Online (Sandbox Code Playgroud)

javascript function global-variables

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

Javascript,Chrome扩展程序开发,XMLHttpRequest Access-Control-Allow-Origin问题

在我的清单文件中,我对此扩展程序(虽然可能只是我的经验不足)有一个轻微的混乱问题:

"permissions": [
    "http://mafre.com/","http://eee.se/","http://ilaafire.net/","notifications","tabs"
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码发送XML请求:

var http = false;
    http = new XMLHttpRequest();

function replace() 
{


            http.open("GET", "http://www.mafre.com/proj/test.php"+getquerystring(), true);
            http.onreadystatechange=function() 
            {

            if(http.readyState < 4) {show_wait_gif();}
                else if(http.readyState == 4) 
                {
                    updatepage( http.responseText);

                }
            }
          http.send(null);
 }
Run Code Online (Sandbox Code Playgroud)

另一方面,我的脚本正在获取数据...但是当我需要获得响应时,Chrome会抛出此错误:

XMLHttpRequest cannot load http://www.mafre.com/proj/test.php?w=rn@ee.se. Origin 
chrome-extension://kjggpdimdloblnddfbnodggchjpalihb is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)

这是为什么?我已经允许它与域进行交互,所以为什么即使它发送查询也无法获得响应?

我应该回到我的页面的回复是"收到电子邮件,谢谢!1"

谢谢!

javascript permissions ajax google-chrome-extension

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

Javascript:返回一个字符串的两个部分......

这是一个快速的javascript魔术师!

我有一个像这样的字符串

var something="a<b>pple</b>";
Run Code Online (Sandbox Code Playgroud)

你可以打破上面这一点,以便我得到这样的数组:

the_string[0] would contain "a"
the_string[1] would contain "pple"
Run Code Online (Sandbox Code Playgroud)

基本上,文本之前的标签和文本的标签.标签将始终为粗体标签,并采用该格式.

谢谢!

javascript regex string

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

Android,在soundpool播放声音

我下载了一些代码,而不是在我的本地课堂上播放我的声音,调用另一个类来播放声音,我唯一的问题是它不允许我在手机上使用我的音量键调整音量而我的旧代码在我的本地课上允许我这样做.

以旧的方式,本地类有这个代码:

    AudioManager mgr = (AudioManager) GameScreen_bugfix.this.getSystemService(Context.AUDIO_SERVICE);
    float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
    float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    float volume = streamVolumeCurrent / streamVolumeMax;
soundPool.play(soundPoolMap.get(sound), volume, volume, 1, 0,1f);
Run Code Online (Sandbox Code Playgroud)

新代码如下所示:

public static void playSound(int index,float speed) 
    { 
             float streamVolume;
            try {
                streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
                streamVolume = streamVolume / mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
                mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, speed);
            } catch (Exception e) {
                e.printStackTrace();
                //Log.v("THE ERROR",  mSoundPoolMap+" "+index);
            } 


    }
Run Code Online (Sandbox Code Playgroud)

所以我试着改变它:

        AudioManager mgr = (AudioManager) SoundManager.getSystemService(Context.AUDIO_SERVICE);
float streamVolumeCurrent = mgr
        .getStreamVolume(AudioManager.STREAM_MUSIC);
float streamVolumeMax = mgr
        .getStreamMaxVolume(AudioManager.STREAM_MUSIC); …
Run Code Online (Sandbox Code Playgroud)

audio android soundpool soundmanager2

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

爆炸字符串并在每个单词后换行

我有一个文本框(我通常称之为:)document.forms[0].text.value具有这种价值:

a,b,c,d,e,f,g,etc
Run Code Online (Sandbox Code Playgroud)

我想要做的是在上面的字符串中的每个逗号上"爆炸"(如php函数),然后将其放回文本框中,所以我最终得到这个:

a
b
c
d
e
f
g
etc
Run Code Online (Sandbox Code Playgroud)

做一点谷歌搜索我看到我将需要使用,split()但做的事情如下:

st.split(",") + "<br />";
Run Code Online (Sandbox Code Playgroud)

只给我无效的结果.

javascript split

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

动作脚本3:增加变量(++ 1)

问题在于增加i.我已经试过++i,我曾尝试i=i+1i.tostring()i++,但我仍然得到输出

打!1

我该如何增量i

这是我的代码:

function mousePosition(inputEvent:MouseEvent)
{
    var i:Number = 0;
    var smiley:MovieClip = new Smiley();
    smiley.x = inputEvent.stageX;
    smiley.y = inputEvent.stageY;
    smiley.addEventListener(Event.ENTER_FRAME, smileyEnterFrame, false, 0, true);
    this.addChild(smiley);
    // ****************************** BELOW IS THE PROBLEM ******
        if (smiley.hitTestObject(RoundButton1) == true)
    {i=i+1;
        trace("hitting!"+ i);
    }
}
Run Code Online (Sandbox Code Playgroud)

increment actionscript-3

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

Javascript,DOM:appendChild和textContent

我向mozilla目录提交了一个Firefox插件,因此被拒绝了:

item.innerHTML =   '<table style="border-collapse: collapse; width: 100%;">'
                  + '<tr><td style="line-height: inherit; padding: 0pt; width: 100%;">'
                   + word.title
                   + '</td></tr>'
                    + '</table>';
Run Code Online (Sandbox Code Playgroud)

我跟编辑谈过,他告诉我" use a text node and then insert it using appendChild, textContent, etc"

这对我来说听起来像是完全胡言乱语,我从未使用过TextContent, appendChild等等,而且有点失落.你能告诉我如何做到这一点,我会在我的脚本中编辑其他13个像上面这样的实例吗?

谢谢!

javascript dom appendchild

0
推荐指数
1
解决办法
1716
查看次数

Javascript,再添加一个元素......

我正在学习这些东西,所以这是我最简单的脚本:

var t  = document.createElement("table"),
    tb = document.createElement("tbody"),
    tr = document.createElement("tr"),
    td = document.createElement("td");

    t.style.width = "100%";
    t.style.borderCollapse = 'collapse';
    t.border=1;



    // note the reverse order of adding child        
    tr.appendChild(td);
    tb.appendChild(tr);
    t.appendChild(tb);

   // more code to populate table rows and cells
   document.getElementById("theBlah").appendChild(t);
   alert(t);
   }
Run Code Online (Sandbox Code Playgroud)

现在我想添加一些将要显示的东西<td>,所以我想:

td.appendChild(document.createTextNode(title)); 
Run Code Online (Sandbox Code Playgroud)

哪个很好...但是如果title包含html,例如一个简单的粗体标签,那么Hello<b> name!</b> 我们怎么做呢?

我认为我们创造了一个新的元素<b>但是......之后,我不知道该怎么做.只是为了澄清,我希望最终结果是Hello<b> name!</b>在TD标签中最终结果 如下:

<td>Hello<b> name!</b></td>
Run Code Online (Sandbox Code Playgroud)

请帮忙!!

编辑; 是的,我知道我可以通过InnerHTML来做到这一点,但我需要这样做才能让它超越Firefox AMO政策抱歉,应该提到这个...

javascript elements

0
推荐指数
1
解决办法
353
查看次数

Javascript:简单的xml请求

我正在学习这些东西,所以我的代码可能不是很漂亮......但是会感激一些帮助:)

我没有编写以下代码,但是从网上的其他地方获得它:

function text_xml()
{
    realXmlUrl="http://jumac.com/del_me_fruits.xml";
    http_request = false;
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType)
    {
        http_request.overrideMimeType('text/xml');
    }

    http_request.onreadystatechange = this.response_xml;
    http_request.open('GET', realXmlUrl, true);
    http_request.send(null);
    xmlDoc = http_request.responseXML;
}

function response_xml()
{
    if (self.http_request.readyState == 4)
    {
        document.getElementById("ex").appendChild(document.createTextNode(" Done!"));
        getFruits(http_request.responseText);
    }
}

function getFruits(xml) {
  var fruits = xml.getElementsByTagName("fruits")[0];
  if (fruits) {
    var fruitsNodes = fruits.childNodes;
    if (fruitsNodes) {
      for (var i = 0; i < fruitsNodes.length; i++) {
        var name = fruitsNodes[i].getAttribute("name");
        var colour = fruitsNodes[i].getAttribute("colour");
        alert("Fruit " + …
Run Code Online (Sandbox Code Playgroud)

javascript xml

0
推荐指数
1
解决办法
6571
查看次数