我正在玩AngularJS框架,我偶然发现了一个问题.我做了一个名为'enter'的指令.它触发mouseenter
和的功能mouseleave
.我将它作为属性应用于表行元素.它现在为每个子元素(所有列等)触发,但只有当您将鼠标放在表行上时才应触发它.
这是我的指令的样子:
myapp.directive('enter', function(){
return {
restrict: 'A', // link to attribute... default is A
link: function (scope, element){
element.bind('mouseenter',function() {
console.log('MOUSE ENTER: ' + scope.movie.title);
});
element.bind('mouseleave',function() {
console.log('LEAVE');
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
这是一个例子:http: //jsfiddle.net/dJGfd/1/
您必须打开Javascript控制台才能看到日志消息.
在AngularJS中实现我想要的功能的最佳方法是什么?如果有合理的AngularJS解决方案,我更喜欢不使用jQuery.
如何从文本文件中删除单个特定行?例如第三行或任何其他行.我试过这个:
line = 2
file = File.open(filename, 'r+')
file.each { last_line = file.pos unless file.eof? }
file.seek(last_line, IO::SEEK_SET)
file.close
Run Code Online (Sandbox Code Playgroud)
不幸的是,它什么也没做.我尝试了很多其他解决方案,但没有任何效果.
我正在构建一个AJAX深度链接的站点.
如果用户尝试使用Javascript不支持的浏览器访问该站点或者它是搜索爬虫,我希望PHP加载页面的所有HTML代码.基本上PHP将返回整个页面.
相反,当用户尝试使用支持Javascript的浏览器访问该站点时,我希望PHP只返回模板代码,让Javascript(AJAX)处理剩下的事情.基本上PHP只会加载设计元素,让Javascript用内容填充它们.
我查看了PHP的get_browser()
功能,但它似乎不是一个可靠的工具.什么是行业的做法,看看浏览器是否支持Javascript,或者它是使用PHP的搜索爬虫?
背景:
为什么我希望该网站有此行为.
由于我只想通过加载地址来加载主页:example.com
,它不向PHP发送任何查询,PHP返回主页的HTML代码.但是,当用户尝试加载以下页面时,这会导致问题:example.com#foo
.因此,对于此示例,PHP将返回主页,并且一旦加载主页,Javascript(AJAX)将更改内容以便它显示正确的内容#foo
.这将使用户看到主页,因此加载时间将变慢并且用户体验将不会那么好.但是,如果我的PHP脚本可以弄清楚,如果使用Javascript支持的浏览器试图加载页面,它将只返回网站的模板,该模板没有内容)并且javascript将使用内容填充该模板应该为#foo显示.另一方面,如果Javascript非分离浏览器或爬虫将尝试访问该页面example.com#foo
,则将返回主页.
我正在使用SWFaddress(http://www.asual.com/swfaddress/)库进行深层链接.
编辑
感谢你们.我以前没想过<noscript></noscript>
用过.
这是我决定做的.PHP默认情况下会加载诸如example.com
或之前的页面example.com#foo
(example.com
从PHP的角度来看基本上是相同的,因为定义的片段不会发送到服务器)空白(只是可视化模板),<noscript>
主页内容中包含标签.这样,使用javascript的用户将无法看到主页,AJAX将根据#foo
片段填充页面内容.另一方面,搜索爬虫和没有javascript的用户将看到主页.
再次感谢你.我认为这是非常简单和优雅的解决方案.如果您有任何进一步的建议,请发表评论或其他答案.
我们都见过这样做的人:
jQuery('a').each(function(){
jQuery(this)[0].innerHTML += ' proccessed';
});
function letsPoluteNS() {
polute = '';
for (morePolution = 0; morePolution < arguments.length; morePolution++)
polute.join(arguments[morePolution]);
return polute;
}
Run Code Online (Sandbox Code Playgroud)
等等.我想知道人们看到了最常见的JavaScript/jQuery技术,它会减慢页面速度和/或浪费JavaScript引擎的时间.
我知道这个问题可能似乎不符合一个被接受的问题,但我在问"什么是最普遍接受的浪费?"
我已经构建了一个小的单页内联网应用程序,它非常Javascript.它在Chrome和Firefox中运行得很漂亮,但是只要你在IE7/8中加载它,界面就会变得极其缓慢.它有各种jQueryUI小部件,如draggables和可调整大小的窗格,一旦你开始点击和拖动,帧速率就会下降到不可用的区域.
在我尝试理解IE8开发人员工具之前,IE7/8脚本引擎中是否有任何已知的问题我可以在我的代码中检查?我已经看到了.innerHTML()
很慢的参考,但我不知道是否还有其他我应该寻找的东西.
在这段代码中
@using (Ajax.BeginForm("MyAction", "MyRouteValues", new AjaxOptions { OnSuccess = "myJSFunction(" + Model.IntegerParameter + ", '" + Model.StringParameter + "')" }))
Run Code Online (Sandbox Code Playgroud)
为什么我的Javascript正确识别Model.IntegerParameter但Model.StringParameter为null
?当我检查响应时,我确信它上面有数据,它显示如下
data-ajax-success="myJSFunction(111111, 'AAAAAA')"
Run Code Online (Sandbox Code Playgroud)
我的View模型非常简单,看起来像这样
public class MyViewModel
{
public int IntegerParameter { get; set; }
public string StringParameter { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
添加了信息
我尝试将第二个参数更改为int,现在它没有传递为null
但0
仍然显示在FireBug的响应中.
我添加了Html.Raw,但它仍然null
在Javascript中获得一个值.
这是我在控制台响应中得到的真实世界截图:
---------------另一个更新------------------
我尝试了所有的建议,但它似乎是MVC s#arp中的一个BUG?我试过不同的项目和不同的PC,它仍然适合我.我注意到这只会发生,如果它来自一个模型它看起来像在Javascript响应之间发生的事情,无论是参数中的第一个,第二个还是任何位置,如果我使用硬编码值,字符串的值都会丢失如:
myJSFunction(" + Model.IntegerParameter + ", 'AAAAAAAA')"
Run Code Online (Sandbox Code Playgroud)
我得到了一个成功的结果,如果我像这样使用jQuery:
myJSFunction(" + Model.IntegerParameter + ", $('#SearchString').val())"
Run Code Online (Sandbox Code Playgroud)
这也有效,但是如果我确实传递了一个像这样的字符串的模型
myJSFunction(" + Model.IntegerParameter …
Run Code Online (Sandbox Code Playgroud) 我希望能够在网页上的图像上获取文件大小.
所以,假设我在页面上有一个图像(已加载),如下所示:
如何在Javascript中调用函数(或者更好的是,jquery)来获取图像的文件大小(而不是维度)?
重要的是要注意我没有使用任何输入或让用户上传图像,从文件API的浏览按钮获取图像大小有很多SO答案.
我想要做的就是根据它的id和src url获取页面上任意图像的文件大小.
编辑:我正在处理某些图像的保持连接,因此Content-Length标头不可用.
我正在构建一个 Electron 应用程序并使用 npm 包电子构建器为 Windows 构建应用程序和安装程序。我正在尝试使用环境变量CSC_LINK
和CSC_KEY_PASSWORD
环境变量来签署应用程序,如下所述:https : //github.com/electron-userland/electron-builder#travis-appveyor-and-other-ci-servers
第一次尝试时,错误和堆栈跟踪是:
Unhandled rejection Error: unable to verify the first certificate
at Error (native)
at TLSSocket.<anonymous> (_tls_wrap.js:1065:38)
at emitNone (events.js:80:13)
at TLSSocket.emit (events.js:179:7)
at TLSSocket._init.ssl.onclienthello.ssl.oncertcb.TLSSocket._finishInit (_tls_wrap.js:593:8)
at TLSWrap.ssl.onclienthello.ssl.oncertcb.ssl.onnewsession.ssl.onhandshakedone (_tls_wrap.js:425:38)
From previous event:
at Object.downloadCertificate (C:\projects\presentation\Electron\node_modules\electron-builder\src\codeSign.ts:97:18)
...
Run Code Online (Sandbox Code Playgroud)
然后我尝试设置环境变量NODE_TLS_REJECT_UNAUTHORIZED=0
,现在得到一个不同的错误:
Unhandled rejection Error: Request error, status 400: Bad Request
at ClientRequest.<anonymous> (C:\projects\presentation\Electron\node_modules\electron-builder\src\httpRequest.ts:36:16)
...
Run Code Online (Sandbox Code Playgroud)
在电子构建器中调用的特定行httpRequest.ts
似乎只是使用节点的 https 模块:https: https.request(...)
//github.com/electron-userland/electron-builder/blob/master/src/httpRequest.ts#L28
这让我相信 Windows 机器或证书有问题。我在 Windows 10 节点 5.9.0 上运行它。
我有一个等式:+8x2+10y2-99+5=99
.我需要单独的数值而不混合字母字符.我使用正则表达式str.match(/[0-9]/g)
来获取所有数值,但对于上面的等式,结果应该是-99,5,99
.
基本上我有一堆带有复选框和标签的行,占据了 2 列空间。有些标签比其他标签更长,因此当您调整浏览器大小或在移动设备上查看时,具有较长标签的列将折叠到第二行,而较短的标签则保留在复选框旁边。看起来像废话。
HTML:
<div class = "row">
<div class="col-lg-2">
<div class="input-group">
<input type="checkbox">
Small Label
</div>
</div>
<div class="col-lg-2">
<div class="input-group">
<input type="checkbox">
Big Label that collapses first
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法让其中一个倒塌,那么整排都倒塌?
更好的是拥有一个像图像一样工作的动态字体,并且根据需要放大和缩小,最多占据 100%,根本不会导致崩溃。我可以只使用图像,但我有很多这样的标签,为每个标签制作图像将花费很长时间。