Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从YUI沙盒获取数据_Javascript_Yui - Fatal编程技术网

Javascript 如何从YUI沙盒获取数据

Javascript 如何从YUI沙盒获取数据,javascript,yui,Javascript,Yui,我想从YUI沙盒中获取数据并将其传递给另一个函数。例如,如果我有类似于: YUI().use('node','stylesheet', function (Y) { var sheet = Y.StyleSheet('#myStyle'); // Some logic... var styleSheetText = sheet.getCssText("h1"); }); console.log(styleSheetText); //still undefined 如

我想从YUI沙盒中获取数据并将其传递给另一个函数。例如,如果我有类似于:

YUI().use('node','stylesheet', function (Y)
{
    var sheet = Y.StyleSheet('#myStyle');
    // Some logic...
    var styleSheetText =  sheet.getCssText("h1");
});

console.log(styleSheetText); //still undefined

如何在console.log中获取o值样式表文本?我现在不知道这是JavaScript问题还是YUI问题。

两者都有。在JavaScript中,您无法在声明变量的函数之外看到该变量的值。如果在YUI().use()的回调函数内声明styleSheetText,则无法在该回调函数外看到其值

这也是一个YUI问题。YUI().use()的回调函数将异步执行,也就是说,执行时间是不可预测的,但总是在执行console.log()语句之后。因此,即使您将styleSheetText设置为全局,以避免变量可见性问题,它仍然会显示未定义


通常,将所有代码放在YUI()的回调函数中。use()。这可以解决两个问题。

你能给我举个例子吗?我不知道你所说的回调函数是什么意思。任何YUI组件的示例都可以作为示例。回调函数是作为YUI()的最后一个参数提供的函数。use()。当有一个回调函数时,它通常是一个明确的信号,表明该操作是异步的,基本上,该函数会触发一个可能需要一些时间才能完成的操作,因此该函数是作为一种方式提供的,表示“当你处理完我的请求后,请给我回电话”,即名称。在浏览器中,您通常会开始执行代码以响应window.onload事件或类似事件,这样可以确保在代码尝试对DOM执行操作之前,DOM中的所有内容都已就绪。当您使用YUI时,YUI().use()包装是您在执行任何代码之前测试的又一个条件。因此,不要仅仅用YUI().use()语句包装对Y.StyleSheet的调用,而是用YUI().use()包装整个代码,就像用window.onload的侦听器包装一样。