有没有办法同时使用jquery和scriptaculous js文件?
我试图实现cakephp框架的自动完成功能,该功能需要js文件,prototype.js,scriptaculous.js,effects.js和controls.js.
我还在我的应用程序中使用JQuery函数,它需要jquery.js文件.
如果我包含jquery.js文件,则自动完成功能不起作用.但我还需要jquery.js文件来实现我的jquery函数.
那么是否有任何方法可以同时使用js文件?
我想创建一个这样的链接:
<a href="http://example.com">text</a>
Run Code Online (Sandbox Code Playgroud)
并替换行为,以便链接在单击时使用Ajax下载内容.
对我来说重要的是不要替换href属性(因此复制链接仍然有效).
一种解决方案是:
$('link').onclick = function() { return false; };
Run Code Online (Sandbox Code Playgroud)
但我想使用.observe方法.但这不起作用:
$('link').observe('click', function() { return false; });
Run Code Online (Sandbox Code Playgroud)
(这很合乎逻辑).
有关如何实现这一目标的任何想法?
谢谢.
是否有现成的方法(可能在其中一个框架中)来检测表单是否与其原始值相比发生了变化?
onchange事件不会发生,因为无论实际更改如何都会触发(例如,我可以勾选一个复选框,然后再关闭两个onchange事件).
最后一种方法是将每个元素的原始值存储在隐藏字段中,然后遍历每个元素.如果有更快的方法,我会很高兴听到它!
我需要添加原型然后添加scriptaculous并在完成加载时获得回调.我目前正在加载原型:
var script = document.createElement("script");
script.src = "http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js";
script.onload = script.onreadystatechange = callback;
document.body.appendChild( script );
Run Code Online (Sandbox Code Playgroud)
我可以通过链接回调来做到这一点,但这似乎是不好的做法(当我需要加载更多脚本时,我不想要一个愚蠢的20个回调方法链).想法?
我正在实现一个返回JSON编码的有效负载的Web服务.如果服务调用失败 - 例如,由于参数无效 - 将返回JSON编码的错误.但是,我不确定在那种情况下应该返回什么HTTP状态代码.
一方面,似乎HTTP状态代码适用于HTTP:即使返回了应用程序错误,HTTP传输本身也是成功的,建议200 OK响应.
另一方面,RESTful方法似乎暗示如果调用者试图发布到资源,并且请求的JSON参数以某种方式无效,则400 Bad Request是合适的.
我在客户端使用Prototype,它有一个很好的机制,可以根据HTTP状态代码(onSuccess和onFailure)自动调度到不同的回调,所以我很想用状态代码来表示服务成功或失败,但我有兴趣听听是否有人对此事有共同惯例的意见或经验.
谢谢!
<select name="DropList" id="serverDropList">
<option selected="selected" value="2">server1:3000</option>
<option value="5">server3:3000</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我知道在原型中我可以获得价值,$('serverDropList').value但我怎么能得到"server1:3000"?
从YouTube嵌入功能获得的典型代码片段如下所示:
<object width="660" height="405">
<param name="movie" value="http://www.youtube.com/v/NWHfY_lvKIQ?fs=1&hl=en_GB&border=1"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/NWHfY_lvKIQ?fs=1&hl=en_GB&border=1"
type="application/x-shockwave-flash"
allowscriptaccess="always"
allowfullscreen="true"
width="660"
height="405">
</embed>
</object>
Run Code Online (Sandbox Code Playgroud)
现在,该<embed>元素有一个type属性告诉浏览器它嵌入了一个flash文件,但对于使用该<object>标记的浏览器,似乎没有可用的信息给浏览器!
为什么这里不需要classid或codebase属性?我能想到的唯一选择是:
<embed>标签中读取此信息我找不到文档来验证任何一个选项.而且我很好奇!
编辑:在这里找到了一个很好的Flash嵌入技术比较.仍然想知道它是如何工作的......
我正在创建一个Node.js webscraper/proxy,但是我在解析源代码的脚本部分中找到的相对Urls时遇到了问题,我认为REGEX可以解决这个问题.虽然我不知道如何实现这一目标.
无论如何我可以解决这个问题吗?
此外,我对这样做更容易,因为我对其他代理如何解析网站感到困惑.我认为大多数只是美化的网站刮刀,可以读取网站的来源中继所有链接/表格回到代理.
根据维基百科关于Bookmarklets的文章(http://en.wikipedia.org/wiki/Bookmarklet),Bookmarklets的概念是:
Web浏览器将URI用于标记的href属性和书签.URI方案(例如http:,file:或ftp:)指定协议和字符串其余部分的格式.浏览器还实现了一个前缀javascript:对解析器来说就像任何其他URI一样.在内部,浏览器看到指定的协议是javascript,将字符串的其余部分视为JavaScript应用程序然后执行,并将结果字符串用作新页面.
它表示结果字符串用作新页面.那么这是否意味着浏览器的原始DOM不受该字符串的影响?但是,如果只将结果字符串用作新页面,我如何在现有DOM中更改或注入新的DOM元素?因为脚本提醒Hello或注入一些新的DOM元素并没有真正返回任何内容.他们有点在现有的DOM上工作.
现在,在Internet Explorer中,除了使用Bookmarklets在页面上执行一些JavaScript之外,我还可以编写一个BHO插件并按以下方式注入:
document = (HTMLDocument)webBrowser.Document;
var injectedJS = System.IO.File.ReadAllText("InjectedJS.js");
var window = document.parentWindow;
window.execScript("(function(){ " + injectedJS + " })()");
Run Code Online (Sandbox Code Playgroud)
同样在chrome中,我可以编写一个扩展来实现同样的目的:
var s = document.createElement('script');
s.src = chrome.extension.getURL("script.js");
s.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
Run Code Online (Sandbox Code Playgroud)
这些有何不同?我所拥有的高级问题是:
execScript方法或在浏览器中使用javascript:protocol 执行JavaScript的方式有什么不同吗?javascript bho bookmarklet javascript-injection google-chrome-extension
javascript ×7
prototypejs ×7
activex ×1
ajax ×1
bho ×1
bookmarklet ×1
cakephp ×1
conflict ×1
dom ×1
embed ×1
flash ×1
html ×1
http ×1
jquery ×1
json ×1
node.js ×1
proxy ×1
regex ×1
web-scraping ×1
youtube ×1