我正在使用Web应用程序(Sharepoint),我需要进行一些内联调整。应用程序本身非常强大,但某些领域有局限性。例如,在这种情况下,我正在尝试为照片创建一个onlick事件。由于局限性,我无法做到这一点。 (如果你知道sharepoint,你知道wiki页面限制)那么,我的目标是在页面上实现javascript(支持),它将定位图像,并插入onclick事件。
我遇到的问题是我似乎无法进行简单的搜索和替换工作。大多数示例似乎都指的是文本节点,但我不熟悉那个术语。
我正在寻找一些指导。谢谢!
(这不是答案,但评论太短) 我想解决几个问题。这是其中之一。我在一个站点中有一个文档库,它嵌入在另一个站点中。当用户单击文档时,它将文档呈现在文档库的非常小的窗口内。我想要完成的一件事是在网址中添加一个“target = _blank”,以便在一个全新的浏览器窗口中打开。不幸的是,这个文档列表是动态的,因此它必须在运行中完成。第二个挑战是图像,如上所述。在这种情况下,有一个小小的选择箭头,可以将数据刷新到另一个Web部件中。虽然这有效,但点击图像会更方便。同样,内容是动态的,在这种情况下,我需要从箭头中读取URL,并动态地将图像更改为可点击。这可能超出了我的能力范围,因为我对网络开发实践不够强。我更像是一个编译器的人。 ;)我没有任何代码示例提供,因为我尝试的一切只是概念的证明。我将用一些建议再看看这个。感谢。
答案 0 :(得分:1)
不确定为什么要尝试使用JavaScript编辑HTML以添加事件处理程序。这通常不是您希望与DOM交互以添加事件处理程序的方式。
最简单的方法是使用jQuery并使用它来查找具有适当选择器的元素并添加事件处理程序。我之前在SharePoint项目中使用过这个问题没有任何问题。
该行的某些内容将是一个开始的地方(尽管选择器会导致点击事件处理程序到DOM中的所有img标记。)
$('img')。点击(函数(){/ 点击此处的代码 /});
答案 1 :(得分:0)
如果你想避免使用jQuery,那么这样的东西可能很有用:
function search(scope, tagName, attr, query) {
tagName = scope.getElementsByTagName(tagName);
var size = tagName.length;
var results = new Array();
for (var i = 0; i < size; i++) {
if (tagName[i].getAttribute(attr) == query)
results.push(tagName[i]);
}
return results;
};
上述函数会对您传递给它的任何范围进行跨浏览器查询。因此,如果我们希望在文档中搜索“Clickable”作为其类别的所有图像,我们可以执行以下操作:
var images = search(document, 'img', 'className', 'Clickable');
for (var i = 0; i < images.length; i++) {
images[i].onclick = onClickFunction; // onClickFunction being whatever you write.
}