小编gbl*_*zex的帖子

捕获iframe加载完成事件

有没有办法捕获iframe的内容何时从父页面完全加载?

html javascript iframe load dhtml

118
推荐指数
4
解决办法
21万
查看次数

JavaScript:Ajax请求之后的全局变量

问题相当简单和技术性:

var it_works = false;

$.post("some_file.php", '', function(data) {

     it_works = true;

});

alert(it_works); # false (yes, that 'alert' has to be here and not inside $.post itself)
Run Code Online (Sandbox Code Playgroud)

我想要实现的是:

alert(it_works); # true
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?如果没有可以$.post()返回要应用的值it_works

javascript ajax jquery global synchronous

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

Javascript Try-Catch Performance Vs. 检查代码时出错

将代码放入try-catch块而不是执行各种错误检查会更快吗?

例如..

function getProjectTask(projectTaskId) {
    if (YAHOO.lang.isUndefined(projectTaskId) || YAHOO.lang.isNull(projectTaskId) && !YAHOO.lang.isNumber(projectTaskId)) {
        return null;
    }

    var projectPhaseId, projectPhaseIndex, projectTaskIndex, projectPhases, projectPhase, projectTask;

    if (!YAHOO.lang.hasOwnProperty(projectTaskPhaseMap, projectTaskId)) {
        return null;
    }

    projectPhaseId = projectTaskPhaseMap[projectTaskId];

    if (YAHOO.lang.isUndefined(projectPhaseId) || YAHOO.lang.isNull(projectPhaseId) || !YAHOO.lang.hasOwnProperty(scheduleData.ProjectPhasesMap, projectPhaseId)) {
        return null;
    }

    projectPhaseIndex = scheduleData.ProjectPhasesMap[projectPhaseId];
    if (YAHOO.lang.isUndefined(projectPhaseIndex) || YAHOO.lang.isNull(projectPhaseIndex) || !YAHOO.lang.hasOwnProperty(scheduleData.ProjectPhases[projectPhaseIndex])) {
        return null;
    }
    projectPhase = scheduleData.ProjectPhases[projectPhaseIndex];

    if (!YAHOO.lang.hasOwnProperty(projectPhase.ProjectTasksMap, projectTaskId)) {
        return null;
    }

    projectTaskIndex = projectPhase.ProjectTasksMap[projectTaskId];

    if (YAHOO.lang.isUndefined(projectTaskIndex) || YAHOO.lang.isNull(projectTaskIndex)) {
        return null;
    }

    projectTask = scheduleData.ProjectTasks[projectTaskIndex]; …
Run Code Online (Sandbox Code Playgroud)

javascript try-catch

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

JavaScript依赖管理

我目前正在维护大量的JS文件,并且依赖性问题越来越多.现在我将每个函数放在一个单独的文件中,我手动维护一个数据库来计算函数之间的依赖关系.

这我想自动化.例如,如果我有函数f

Array.prototype.f = function() {};
Run Code Online (Sandbox Code Playgroud)

在另一个函数g中引用

MyObject.g = function() {
    var a = new Array();
    a.f();
};
Run Code Online (Sandbox Code Playgroud)

我希望能够检测到g正在引用f.

我该怎么做?我从哪里开始?我是否需要实际编写编译器,或者我可以调整Spidermonkey吗?还有其他人已经这样做了吗?

任何指示让我开始非常感谢

谢谢Dok

javascript dependencies dependency-management

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

如何在Javascript中加载本地JSON文件

我正在编写一个Web应用程序(好吧,实际上它最终将是一个OS X Dashboard小部件,但我决定首先将其原型化为一个简单的网页),需要从本地JSON文件加载一些初始化数据.我的代码看起来像这样:

function loadDatos() {   
    var xobj = new XMLHttpRequest();
    xobj.overrideMimeType("application/json");
    xobj.open('GET', 'datos.json', true);
    xobj.onReadyStateChange = function () {
        if (xobj.readyState == 4) {
            var jsonTexto = xobj.responseText;
            ProcessTheData(jsonTexto);
        }
    }
    xobj.send(null);
}
Run Code Online (Sandbox Code Playgroud)

该函数从HTML文件的BODY标记中的onLoad()事件中调用.现在,从我在调试时看到的,函数被执行,但onReadytStateChange事件处理程序永远不会被调用.

我该怎么办?我认为使用XMLHttpRequest来访问本地文件有点奇怪,但是我看到处理这个问题的新教程似乎说它应该有效(我见过的99%的文档都谈到了如何从远程服务器加载JSON,而不是从本地文件加载JSON.

我正在使用Firefox 3.6.10进行测试,但我也尝试使用Safari 4.

javascript json dashboard

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

计算JavaScript中的窗口拖动和倾斜

我正在使用JavaScript并尝试对div进行偏斜效果.

首先,看看这个视频:http://www.youtube.com/watch?v = yy8Uy81smpE(0:40-0:60应该就够了).移动窗口时,视频显示了一些不错的变换(倾斜).我想要做的是同样的事情:当我移动它时扭曲div.

目前我只有一个简单的div:

<div id="a" style="background: #0f0; position: absolute; left: 0px; top: 0px;"></div>
Run Code Online (Sandbox Code Playgroud)

我使用CSS3的transform属性做了一个简单的偏斜变换,但是我的实现是错误的.有没有很好的教程或数学网站或资源来描述这背后的逻辑?如果我只知道逻辑和数学,我知道JavaScript和CSS足以实现.我试过阅读FreeWins源代码,但我不擅长C.

我接受任何足智多谋的答案或伪代码.我的拖动系统是一个更大的系统的一部分,因此,现在我发布了一些真正的代码,如果没有给你整个系统它是不行的(我现在不能做).因此,您无法按原样运行此代码.我使用的代码是这个(虽然略有修改),以证明我的想法:

/**
 * The draggable object.
 */
Draggable = function(targetElement, options) {
    this.targetElement = targetElement;

    // Initialize drag data.
    this.dragData = {
        startX: null,
        startY: null,
        lastX: null,
        lastY: null,
        offsetX: null,
        offsetY: null,
        lastTime: null,
        occuring: false
    };

    // Set the cursor style.
    targetElement.style.cursor = 'move';

    // The element to move.
    this.applyTo = options.applyTo || targetElement; …
Run Code Online (Sandbox Code Playgroud)

javascript math user-interface draggable effect

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

$("#someDiv").attr("scrollHeight")在jquery-1.6.1中不起作用

$("#someDiv").attr("scrollHeight")适用于所有浏览器的jquery 1.3.2.但是在更新到jquery 1.6.1时,它只适用于IE9.Firefox 4.0.1,Google Chrome 11和Safari 5都返回undefined. $("#someDiv").get(0).scrollHeight但仍适用于所有浏览器.

有人知道发生了什么吗?attr("scrollHeight")在最新的jquery(即版本1.6.1)中被打破了吗?

javascript jquery

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

为什么IE8上的JavaScript访问图像尺寸如此昂贵?

我必须处理大量图像.首先,我需要检查图像的大小是否大于50x60并适当增加坏图像的计数器.

我的问题是,速度n.width/ n.height在Internet Explorer 8极低.我查了一下n.offsetWidth,n.clientWidth但速度方面都是一样的.我不能使用n.style.width,因为这个值并不总是设置在<img />我感兴趣的标签上.

考虑以下代码:

使用Javascript

var Test = {
    processImages: function () {
        var fS = new Date().getTime();

        var minimagew = 50,
            minimageh = 60;
        var imgs = document.getElementsByTagName('img');
        var len = imgs.length,
            isBad = 0,
            i = len;

        while (i--) {
            var n = imgs[i];

            var imgW = n.width;
            var imgH = n.height;

            if (imgW < minimagew || imgH < minimageh) {
                isBad++;
            }
        } …
Run Code Online (Sandbox Code Playgroud)

javascript performance image dimensions

13
推荐指数
3
解决办法
1086
查看次数

与jQuery .live()等效的Dojo是什么?

与jQuery .live()等效的Dojo是什么?
http://api.jquery.com/live/

我找到的唯一解决方案是dojo.disconnect事件处理程序,并在向页面添加动态标记后重新连接它们.

javascript jquery events dojo live

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

使用特定文本查找DOM元素并对其进行修改

我试图弄清楚如何在原始的javascript(没有jQuery等)中找到具有特定文本的元素并修改该文本.

我解决方案的第一个化身......不够充分.我做的基本上是:

var x = document.body.innerHTML;
x.replace(/regular-expression/,"text");
document.body.innerHTML = x;
Run Code Online (Sandbox Code Playgroud)

天真的我以为我成功地飞扬了颜色,特别是因为它如此简单.所以我在我的例子中添加了一个图像,并认为我可以每5秒检查一次(因为这个字符串可能会动态地进入DOM)...并且图像每5秒闪烁一次.

哎呀.

所以,必须有一个正确的方法来做到这一点.一种专门挑出特定DOM元素并更新该DOM元素的文本部分的方法.

现在,总是"递归搜索孩子,直到你找到最深的孩子用字符串"方法,我想避免.即便如此,我仍然怀疑"将innerHTML更改为不同的东西"是更新DOM元素的正确方法.

那么,在DOM中搜索字符串的正确方法是什么?更新DOM元素文本的正确方法是什么?

javascript string search text dom

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