我正在尝试设置一个可以通过箭头键导航的菜单.我在Firefox中有这个工作片.
试图让它在IE8中工作并经过一番努力后,发现这是因为IE8不会在箭头上注册一个按键.去测试:
$(document).keypress(function (eh){
alert(eh.keyCode);
};
Run Code Online (Sandbox Code Playgroud)
在Firefox中,按任意箭头键将触发37,38,39或40的警报.
在IE8中,什么都没有.标准QWERTY键盘上的任何其他键都会注册,但不会注册箭头键.
这是我的Javascript的问题吗?浏览器设置?Windows设置?
我目前正在构建完整的背景图像布局,我想根据用户访问的页面更改图像.为了达到目的:当用户点击链接时,我需要更改图像属性.这是我得到了多远:
$(function() {
$('.menulink').click(function(){
$("#bg").attr('src',"img/picture1.jpg");
});
});
Run Code Online (Sandbox Code Playgroud)
<a href="" title="Switch" class="menulink">switch me</a>
<img src="img/picture2.jpg" id="bg" />
Run Code Online (Sandbox Code Playgroud)
谢谢,可能是简单的东西,但在我的头上!
我有一个场景,我有一些文本,应该是用户可选择的.问题是,它上面有一个UI覆盖,这会阻止默认情况下选择文本.保持叠加层仍然能够选择文本的逻辑方法是使用合成事件(使用document.createEvent
),但由于某种原因,它不能按预期工作.
事件似乎被正确委派并触发其处理程序,但未选择任何文本.我在这里有一个例子,这是对问题的粗略简化.
几点说明
mousedown
事件中删除选择,但不会发生我错过了一个应该委派的事件(我有mousedown
,mousemove
和mouseup
)?或者是浏览器禁用此类行为的某种安全措施(请参阅注释2)?关于如何获得所需结果的任何其他建议?我知道我应该完全解决当前的叠加解决方案,但我已经对问题本身感到好奇.
html javascript javascript-events selection event-delegation
在Firefox 3及更高版本(可能是旧版本)中,选择iframe中的内容似乎总是使用用于当前没有焦点的文档的灰色选择背景颜色,即使iframe确实具有焦点.我能找到的唯一例外是iframe中的内容是可编辑的.在其他浏览器中并非如此.这是一个说明这个的例子:
遗憾的是,这会阻止使用::-moz-selection
CSS伪元素在iframe中设置样式,因为它仅适用于非灰色选择:
我的问题是:是否可以防止iframe的选择在Firefox中变为灰色而不使用contenteditable
/ designMode
?
这似乎只发生在动态编写的iframe上:使用单独的文件,该src
属性解决了问题.但是,我确实需要它来处理动态编写的iframe.
我需要在contenteditable div中实现数字的突出显示(将来我添加更复杂的规则).问题是当我使用javascript替换插入新内容时,DOM更改和contenteditable div失去焦点.我需要的是保持对当前位置的重点关注div,因此用户只需键入没有任何问题,我的功能简单突出显示数字.谷歌搜索我认为Rangy库是最好的解决方案.我有以下代码:
function formatText() {
var savedSel = rangy.saveSelection();
el = document.getElementById('pad');
el.innerHTML = el.innerHTML.replace(/(<([^>]+)>)/ig,"");
el.innerHTML = el.innerHTML.replace(/([0-9])/ig,"<font color='red'>$1</font>");
rangy.restoreSelection(savedSel);
}
<div contenteditable="true" id="pad" onkeyup="formatText();"></div>
Run Code Online (Sandbox Code Playgroud)
问题是在函数结束工作焦点回到div之后,但是插入总是指向div开始,我可以在任何地方输入,除了div开始.还有console.log类型以下Rangy warning: Module SaveRestore: Marker element has been removed. Cannot restore selection.
请帮我实现这个功能.我打开另一个解决方案,不仅是rangy库.谢谢!
http://jsfiddle.net/2rTA5/这是jsfiddle,但是它不能正常工作(当我在我的div中输入数字时没有任何反应),不管我(第一次通过jsfiddle发布代码)或者资源不支持contenteditable.UPD*我在stackoverflow上读到类似的问题,但解决方案不适合我的情况:(
我试图通过JavaScript插入一个iframe到浏览器DOM,并希望删除边界,如果IE但似乎无法.我试过这些无济于事:
iframeElement.style.borderStyle="none";
Run Code Online (Sandbox Code Playgroud)
和
iframeElement.style.frameBorder = "0";
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激.
我正在为CKEditor开发一个插件,需要在保存之前立即对编辑器的内容进行一些更改.在FCKeditor中,我使用该OnAfterLinkedFieldUpdate
事件实现了这一点,但我还没有找到在CKEditor中执行此操作的等效方法.我原本希望有一个合适的事件可以挂钩,但似乎没有.有谁知道这样做的方法?
我有一系列HTML元素display: inline-block
.它们看起来像盒子.这是一个简化的例子:
.box {
display: inline-block;
border: solid darkblue 1px;
padding: 5px;
margin-right: 1em;
text-align: center;
background-color: lightgoldenrodyellow;
}
Run Code Online (Sandbox Code Playgroud)
<div class="box">This<br>is<br>a<br>box</div>
<div class="box">This<br>is<br>a<br>tall<br>box</div>
<div class="box">This box is wider than it is tall<br>and therefore needs no adjustment</div>
Run Code Online (Sandbox Code Playgroud)
我需要的是每个盒子至少要和它一样宽,受到以下限制:
inline-block
行为至关重要.一长串的盒子需要很好地自动包裹我发现了一种技术,它可以使元素至少与它的宽度一样高,但这依赖于一个百分比长度为margin
或者padding
相对于元素宽度的事实.似乎没有相当于制作一个至少与高一样宽的盒子.
可能吗?
我需要获取元素内的文本.
我只能抓住这个元素的类而不是ID.
<span class="fileName">test.png</span>
Run Code Online (Sandbox Code Playgroud)
所以我需要一种方法来获取test.png
,但正如你所看到的,我只有元素的类而不是ID.
请注意我们可能有更多<span class="fileName"></span>
,所以它可能看起来像这样
<span class="fileName">test1.png</span>
<span class="fileName">test2.png</span>
<span class="fileName">test3.png</span>
<span class="fileName">test4.png</span>
Run Code Online (Sandbox Code Playgroud)
在我们有更多的情况下,如上面的例子,我需要获取所有值而不仅仅是一个,因为我需要将此值传递给另一个使用jQuery的页面.所以它应该能够从该元素中获得一个或多个值.
请帮忙!
而且我也不是一个JavaScript专家!
当我尝试从iframe中获取内容窗口时,使用
var contentWindow = document.getElementbyId('iframe').contentWindow
Run Code Online (Sandbox Code Playgroud)
有时它返回"Window undefined",因为contentWindow不存在.我似乎无法使用它来检查它
if (contentWindow === unidentified) or if (contentWindow === null)
Run Code Online (Sandbox Code Playgroud)
因为如果我试图从中获取值,它只是代码中的错误.有没有其他人遇到这个问题,并找到了解决方案?