标签: innerhtml

AngularJS element.innerHTML未在指令中定义

比方说我有:

directives.directive('foo', function () {
    return {
        restrict:'A',
        scope: true,
        link:function (scope, element, attr) {

            console.log('innerHTML is ' + element.innerHTML);

            scope.$watch('update', function (newValue) {
                console.log('innerHTML is... ' + element.innerHTML);
            });

        }
    }
});
Run Code Online (Sandbox Code Playgroud)

...然后innerHTML未定义.我想这是由于Angular处理DOM的方式.获取innerHTML的正确方法是什么?

innerhtml angularjs angularjs-directive

15
推荐指数
1
解决办法
3万
查看次数

如何在不使用innerHTML的情况下在JavaScript中添加不间断的空格?

我正在动态生成内容,在某些情况下,我需要将a设置&nbsp;<span>元素的唯一内容.

但是,以下添加&nbsp;为文本vs添加空格:

var foo = document.createElement("span")
foo = document.createTextNode("&nbsp;");
Run Code Online (Sandbox Code Playgroud)

这是有道理的,所以我想知道,如果&nbsp;没有(!)使用,我将如何正确添加innerHTML

感谢帮助!

javascript whitespace innerhtml createtextnode createelement

15
推荐指数
3
解决办法
4万
查看次数

Firefox和AJAX垃圾文件元素之后

我使用页面获取脚本动态地将网页加载到div中.继承人的代码.BTW Im使用Firefox w/Kubuntu

function fetch(URL, divId) {
        req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
    req.open("GET", URL);
    req.onreadystatechange = function() {
        if (req.readyState == 4 && req.status == 200) {
            document.getElementById(divId).innerHTML = req.responseText;
        }
    }
    req.send(null);
}
Run Code Online (Sandbox Code Playgroud)

当我试图让它加载页面没有任何反应,我得到一个错误

错误:文档元素之后的垃圾
源文件:file:///home/amnite/Stuff/MetalBraska/Shows/ContentRight.html
行:2,列:1
源代码:
<img src="Layout/HeaderDiv.jpg" width="250px" height="7px">

javascript ajax xmlhttprequest innerhtml

14
推荐指数
1
解决办法
2万
查看次数

修改IE8中<style>元素的innerHTML

我正在创建一个样式元素,我需要将一些CSS放入其中.以下代码适用于Chrome,Safari和FF,但在IE8中失败:

var styleElement = document.createElement("style");

styleElement.type = "text/css";

styleElement.innerHTML = "body{background:red}";

document.head.appendChild(styleElement);
Run Code Online (Sandbox Code Playgroud)

在IE8中,代码在innerHTML部分时失败了.我试过做:

var inner = document.createTextNode("body{background:red}");

styleElement.appendChild(inner);
Run Code Online (Sandbox Code Playgroud)

但是,"意外调用方法或属性访问"也失败了.我正在寻找解决方法或解决方法.

coding-style innerhtml internet-explorer-8

14
推荐指数
1
解决办法
5444
查看次数

获取包含属性的开始标记 - 没有innerHTML的outerHTML

我想从DOM中检索某个带有其属性的标记元素.例如,来自

<a href="#" class="class">
  link text
</a>
Run Code Online (Sandbox Code Playgroud)

我希望得到<a href="#" class="class">,可选择关闭</a>,作为字符串或其他对象.在我看来,这类似于检索.outerHTML没有的.innerHTML.

最后,我需要通过jQuery包装其他一些元素.我试过了

var elem = $('#some-element').get(0);
$('#some-other-element').wrap(elem);
Run Code Online (Sandbox Code Playgroud)

.get()返回包含其内容的DOM元素.也

var elem = $('#some-element').get(0);
$('#some-other-element').wrap(elem.tagName).parent().attr(elem.attributes);
Run Code Online (Sandbox Code Playgroud)

失败,因为elem.attributes返回a NamedNodeMap不能与jQuery一起工作,attr()我无法转换它.承认上面的例子不是很有意义,因为它们还复制了元素的不再唯一ID.但有什么简单的方法吗?非常感谢.

javascript jquery dom innerhtml outerhtml

14
推荐指数
2
解决办法
2444
查看次数

Angular 2:单击链接时停止父元素事件的传播

我有一个事件冒泡的情况.示例:

<td (click)="doSomething()">
  <text [innerHtml]="content"> 
        //  content of innerHtml is :  <a href="http://google.com"></a>
  </text>
</td>
Run Code Online (Sandbox Code Playgroud)

标签通过innerHtml从另一个组件呈现.问题:当我点击链接时,也会触发元素的click事件.如何解决问题(停止传播doSomething()),知道事件处理程序(或任何角度2代码)不能通过innerHtml传递?

谢谢!

innerhtml event-bubbling typescript angular2-template angular

14
推荐指数
3
解决办法
1万
查看次数

如果innerHTML是邪恶的,那么改变链接文本的更好方法是什么?

我知道innerHTML被认为是邪恶的,但我认为这是改变链接文本的最简单方法.例如:

<a id="mylink" href="">click me</a>
Run Code Online (Sandbox Code Playgroud)

在JS中,您可以使用以下命令更改文本:

document.getElementById("mylink").innerHTML = new_text;
Run Code Online (Sandbox Code Playgroud)

在Prototype/jQuery中:

$("mylink").innerHTML = new_text;
Run Code Online (Sandbox Code Playgroud)

工作良好.否则,您必须先替换所有子节点,然后添加文本节点.何必?

javascript dom innerhtml

13
推荐指数
4
解决办法
7135
查看次数

innerHTML删除Internet Explorer中的属性引号

当你在IE中获得DOM节点的innerHTML时,如果属性值中没有空格,IE将删除它周围的引号,如下所示:

<html>
    <head>
        <title></title>
    </head>
    <body>
        <div id="div1"><div id="div2"></div></div>
        <script type="text/javascript">
            alert(document.getElementById("div1").innerHTML);
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

在IE中,警报将显示为:

<DIV id=div2></DIV>
Run Code Online (Sandbox Code Playgroud)

这是一个问题,因为我将此传递给需要有效XHTML的处理器,并且必须引用所有属性值.有谁知道在IE中解决这种行为的简单方法?

javascript xhtml internet-explorer innerhtml

13
推荐指数
2
解决办法
1万
查看次数

Xpath和innerHTML

我可以使用什么Xpath表达式来查找实际文本(innerHTML)是Logout的所有锚(只是'a')元素.

就像是

//a[@innerHTML='Logout']
Run Code Online (Sandbox Code Playgroud)

这是对的吗?

html xpath innerhtml

13
推荐指数
1
解决办法
9600
查看次数

Dojo Toolkit:如何转义HTML字符串?

我的HTML 5应用程序的用户可以在表单中输入他的名字,此名称将显示在其他地方.更具体地说,它将成为innerHTML一些HTML元素.

问题是,如果您在表单中输入有效的HTML标记,即可以使用某种HTML注入,则可以利用此功能.

用户名只存储并显示在客户端,因此最终用户自己是唯一受影响的人,但它仍然很草率.

在将它innerHTML放入Dojo 中的元素之前,有没有办法逃避字符串?我猜Dojo在某一点确实有这样的函数(dojo.string.escape())但它在版本1.7中不存在.

谢谢.

javascript dojo escaping innerhtml

13
推荐指数
2
解决办法
7411
查看次数