bookmarklet:用js将文本插入textarea?

发布于 2024-09-25 19:58:30 字数 150 浏览 3 评论 0原文

我做错了什么?

 javascript:document.getElementsByTagName('textarea').innerHTML='inserted';

我想创建一个书签以将简单文本插入给定网页上的文本区域。

What I am doing wrong?

 javascript:document.getElementsByTagName('textarea').innerHTML='inserted';

I want to create a bookmarklet to insert simple text to a textarea on a given webpage.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

绝情姑娘 2024-10-02 19:58:31

使用 value 属性而不是 innerHTML 并确保您的代码计算结果为 undefined,您可以通过将其包装在不带 < 的函数中来实现这一点代码>返回语句。如果您不这样做,页面的内容将被替换为您的代码计算结果(在本例中为字符串“inserted”)。

javascript:(function() {document.getElementsByTagName('textarea')[0].value = 'inserted';})();

2012 年 1 月 14 日更新

我没有发现原始代码将 document.getElementsByTagName('textarea') 视为单个元素而不是 NodeList< /code> 是的,所以我用 [0] 更新了我的代码。 @streetpc 的回答更详细地解释了这一点。

Use the value property rather than innerHTML and make sure your code evaluates to undefined, which you can do by wrapping it in a function with no return statement. If you don't do this, the contents of the page will be replaced with whatever your code evaluates to (in this case, the string 'inserted').

javascript:(function() {document.getElementsByTagName('textarea')[0].value = 'inserted';})();

Update 14 January 2012

I failed to spot the fact that the original code was treating document.getElementsByTagName('textarea') as a single element rather than the NodeList it is, so I've updated my code with [0]. @streetpc's answer explains this in more detail.

预谋 2024-10-02 19:58:31

取消链接 getElementByIdgetElementsByTagNameElements 处有一个 s,因为它返回一个 数组 匹配元素的类似数组的 NodeList。因此,您必须首先访问其中一个元素,为了简单起见,我们假设第一个元素:

javascript:void((function(){document.getElementsByTagName('textarea')[0].value='inserted'})())

此外,正如其他人提到的,这里是 value 属性而不是 innerHTML

Unlinke getElementById, getElementsByTagName has an sat Elements because it returns an array array-like NodeList of the matching elements. So you'll have to access one of the elements first, let's say the first one for simplicity:

javascript:void((function(){document.getElementsByTagName('textarea')[0].value='inserted'})())

Also, as mentioned by others, value property rather than innerHTML here.

真心难拥有 2024-10-02 19:58:31

如果有人想知道如何使用当前聚焦的文本字段,请使用以下命令:

document.activeElement.value = "...";

In case anyone wonders how to use the currently focused text field, use the following:

document.activeElement.value = "...";
静谧 2024-10-02 19:58:31

在 jQuery 中,你必须使用 if 这种方式:

for single element -> $('#element_id').html('此处为您的 html')
对于所有文本区域 -> $('textarea').val('your html here')

我必须承认,我不确定为什么它会这样工作,但它确实有效。并使用rameworks,它们会节省你的时间和精力。

In jQuery you have to use if this way:

for single element -> $('#element_id').html('your html here')
for all text areas -> $('textarea').val('your html here')

I have to confess that I`m not sure why it works this way but it works. And use rameworks, they will save you time and nerves.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文