在过去的几年里,我一直忙于服务器端编程,我有点忽略了这些JavaScript库.由于我对JavaScript的丰富知识和长期经验,我总是从头开始编写所有内容.即使在那时它似乎很愚蠢,但我想这更像是挑战和学生的心态.最近我开始使用YUI,Javascript和Prototype,我很容易做我想要的但是我没有花足够的时间在它上面,我不确定应该坚持什么.我计划在一个有100个在线用户的网站上使用这些.因此,两个问题是高效的AJAX以及客户端加载时间.我计划使用JQuery和YUI的组合.从雅虎加载Yahoo UI,后者从谷歌加载.然而,在我看来,这是不必要的,我将来可能会后悔.我想得到一些意见!我确实环顾四周并阅读了其他帖子,但大多数人似乎都有情绪问题,而不是技术问题.
因此,作为"像计算机科学家一样思考"问题17.6的一部分,我写了一个名为袋鼠的课程:
class Kangaroo(object):
def __init__(self, pouch_contents = []):
self.pouch_contents = pouch_contents
def __str__(self):
'''
>>> kanga = Kangaroo()
>>> kanga.put_in_pouch('olfactory')
>>> kanga.put_in_pouch(7)
>>> kanga.put_in_pouch(8)
>>> kanga.put_in_pouch(9)
>>> print kanga
"In kanga's pouch there is: ['olfactory', 7, 8, 9]"
'''
return "In %s's pouch there is: %s" % (object.__str__(self), self.pouch_contents)
def put_in_pouch(self, other):
'''
>>> kanga = Kangaroo()
>>> kanga.put_in_pouch('olfactory')
>>> kanga.put_in_pouch(7)
>>> kanga.put_in_pouch(8)
>>> kanga.put_in_pouch(9)
>>> kanga.pouch_contents
['olfactory', 7, 8, 9]
'''
self.pouch_contents.append(other)
Run Code Online (Sandbox Code Playgroud)
让我疯狂的是,我希望能够编写一个字符串方法,通过__str__书面下面的单元测试.我现在得到的是:
In <__main__.Kangaroo object at …Run Code Online (Sandbox Code Playgroud) 我可以使用ID显示/隐藏,但是如何使用类来执行此操作?
$('black').setStyle({
display:'none', border:'1px solid red'
});
Run Code Online (Sandbox Code Playgroud)
例如,如果我有#black,这将有效,但如果我有.black怎么办?
谢谢,
图像标记(<img src="" alt="" />),换行符标记(<br />)或水平规则标记(<hr />)在末尾有斜杠,表示自己为自闭标记.但是,当这些对象是由javascript创建的,并且我查看了源代码时,它们没有斜杠,使它们因W3C标准而无效.
我怎么能克服这个问题?
(我使用javascript原型库)
我有滑块问题.当我抓住处理程序时,我改变图像的.src,只是为了改变它的颜色.但是,我希望它在我释放鼠标按钮时更改回原始颜色.我尝试了两件事.
1)在处理程序mouseup事件上更改它:这只有在我释放处理程序上的按钮时才有效,所以这不是一个解决方案.
2)Changin它返回窗口mouseup事件:事件未正常触发.如果我在窗口的任何位置单击并释放,则事件会正常触发,但如果我单击处理程序,将光标移动到窗口的任何其他位置,然后释放按钮,则事件将不会触发.
顺便说一句,即时通讯使用原型js框架.
解决方案?谢谢
这是代码.我在文档准备好后加载处理函数.
function handler()
{
var handler = $('handler');
Event.observe(window, "mouseup", function(){
alert('salta'); //to see when mouseup fires
if(handler.src=='http://localhost/moodle/blocks/videoavatar/eggface/trunk/gripper_o.png'){ //orange
handler.src='http://localhost/moodle/blocks/videoavatar/eggface/trunk/gripper.png';} //grey
});
Event.observe(handler,'mousedown',function(){handler.src='http://localhost/moodle/blocks/videoavatar/eggface/trunk/gripper_o.png';}); //orange
}
Run Code Online (Sandbox Code Playgroud) 我无法从JSF框架中删除原型(RichFaces 3.3.3).如果我尝试noConflict并试图接管$它会破坏我的应用程序框架,因为它与原型紧密结合.
那么有没有办法可以做到这一点:
jQuery(function() {
/*
some code that within this domready function
allows me to use $() within this function
and not interfere with $ being used for prototype
outside?
*/
});
Run Code Online (Sandbox Code Playgroud) 为了把事情放在上下文中,我正在通过Ajax加载一个项目列表,创建一个包含每个项目主要信息的div,并希望在点击它时在页面上显示详细信息.所以我在onSuccess中有这个代码:
items = transport.responseText.evalJSON(); // my list of objects that contains all the details I'll need for that page
for (var itemID in items)
{
newDiv = ... // Creating my div with main infos
$('myDiv').appendChild(newDiv);
// More code to make everything look pretty and that works fine
Event.observe(newDiv, 'click', function() { loadItem(itemID); });
}
Run Code Online (Sandbox Code Playgroud)
loadItem是我的函数,它将显示所有项目详细信息.我的问题是itemID在创建observe事件时不会被其值替换,因此它总是为所有项返回相同的ID.
知道如何解决这个问题吗?我检查了原型文档上的绑定,这似乎是针对那些情况,但可能没有得到它,因为它对我不起作用.
我有以下HTML代码
<a href="http://www.google.com">Google</a>
Run Code Online (Sandbox Code Playgroud)
当我点击链接时,我希望我的字符串包含下面的完整HTML代码
<a href="http://www.google.com">Google</a>
Run Code Online (Sandbox Code Playgroud)
我尝试使用这种方法,但我只设法得到文本"谷歌",无法获得锚码.
$('#frame').contents().find('body').on("click", "a", function () {
var string = $(this).html();
alert(string);
});
Run Code Online (Sandbox Code Playgroud)
字符串警报仅Google在我需要时<a href="http://www.google.com">Google</a>.
我开发了使用YouTube Data API v2的Google Chrome扩展程序.清单中的我的权限字段如下所示,因为脚本是在youtube.com下的页面中注入的,我还需要访问选项卡:
"permissions": ["tabs", "*://*.youtube.com/*"]
Run Code Online (Sandbox Code Playgroud)
这也适用于我向YouTube Data API v2发出请求,因为该请求是针对http://gdata.youtube.com/进行的,因此它是同一个域.但现在我正在迁移到YouTube Data API v3,请求必须完成http://www.googleapis.com/youtube/v3/(请注意HTTPS而不是HTTP).但令人惊讶的是,我的请求在没有添加任何新权限的情况下完美运行.
我知道,我问的是一些似乎不是问题的东西,但我个人认为我在软件中不理解的任何行为都是一个问题.为什么会这样?我不应该添加权限"*://*.googleapis.com/*",以便我的API的XMLHttpRequest请求工作?
我也有一些猜测:HTTP Access Control标头.我的请求会发送Origin带有值的标头chrome-extension://myExtensionId.API的答案还包含以下标题:
Access-Control-Allow-Origin: chrome-extension://myExtensionId
但这可能是Chrome允许我在没有清单中定义的额外权限的情况下进行跨源XMLHttpRequest的原因吗?不确定,显然在Google API,YouTube Data API v3或Chrome Extensions开发人员文档中没有记录.
xmlhttprequest google-api youtube-api cross-domain google-chrome-extension
我希望能够通过Chrome中的JS控制台调用我在Chrome扩展程序中编写的函数,以便我可以轻松地测试它们,并查看它们的输出随页面更改而变化的方式.
但似乎我写的函数不适用于chrome JS控制台.我真的不太了解JS,或者Chrome扩展模型,但是我需要以某种方式将扩展源注入到我正在使用扩展名的页面主体中?
javascript ×7
prototypejs ×4
jquery ×3
html ×2
class-method ×1
cross-domain ×1
css ×1
events ×1
google-api ×1
innerhtml ×1
onmouseup ×1
outerhtml ×1
printing ×1
python ×1
richfaces ×1
string ×1
youtube-api ×1
yui ×1