0

我需要一个解决方案,用户可以在我的系统中输入网页的 URL。该页面将加载,然后用户可以单击他想要更改的某个部分。所以基本上我需要的是一种在我的应用程序中显示网页的方法(可以用框架完成,但我不希望有水平滚动条),然后是另一种让用户选择文本块的方法或页面元素。

即,如果一个文本块在 a 中div,悬停在文本上方会使用微弱的绿色勾勒出该 div(悬停会删除此边框/轮廓),单击文本会在其周围绘制一个实心绿色边框以显示其被选中,然后我页面上的一些内容将显示 div 的 id,并让用户指定我需要的其他一些信息。

因此,我可能需要一种方法来获取所有<div>s, <table>s,<span>s<p>s任何其他“容器”标签,然后能够使它们悬停/单击以更改其style.border属性,并能够检索其 ID/名称,

对于一块文本,边框可能会起作用,但是图像之类的呢?另外,如果 a<div>没有 ID/名称,如何指定它?

4

3 回答 3

3

您可以使用<iframe>标签,然后设置contentEditable = on. 这样,浏览器就提供了所见即所得的功能。但是,边界等可能不起作用。一些代码:

var idno = 0;

function addEditor(parent, url) {
    parent.innerHTML += '<iframe src="' + url + '" id="edit' + idno + '"></iframe>';
    var el = document.getElementById("edit" + idno);
    el.contentEditable = true;
    return el;
}

addEditor(document.body, "http://google.com").innerHTML += "Hello!";

应该管用。

于 2009-01-24T17:41:04.343 回答
2

如果它们适合您的上下文,您可以考虑使用 Adob​​e Flex 或 Microsoft Silverlight 来执行此操作。两者都提供了在 javascript 或框架中更难以实现的功能和控制粒度,尤其是当您需要跨 Windows、Mac 和 Linux 与多个浏览器一致工作时。

Flex 使用增强版的 javascript 作为其编程语言。Silverlight 对版本 1 的处理方式与此类似,尽管在版本 2 中它们仅支持 .NET 语言(根据您的需要,这可能更好、更差或无关紧要。)

两者都将自己描述为 RIA(富 Internet 应用程序)的工具。

于 2009-01-24T17:52:45.910 回答
0

这是一个非常普遍的问题。周围有很多内容管理系统,它们提供了类似的东西。

另外,如果 a<div>没有 ID/名称,如何指定它?

您可以通过 XPath 路径识别 DOM 中的节点。向上遍历parentNode以创建路径。

对于一块文本,边框可能会起作用,但是图像之类的呢?

您可以设置html中几乎所有元素的边框属性。

于 2009-01-24T17:29:36.550 回答