Bookmarklet以随机元素名称自动填充textarea

时间:2015-04-21 18:30:09

标签: javascript jquery bookmarklet

我正在尝试构建一个bookmarklet,使用带有文本的属性name="param[random-number][details]"自动填充textarea。

enter image description here

random-number在服务器上生成,每次都不同。页面HTML看起来像:

<table>
<tbody>
<tr>
<td>Video Title:</td>                                                
<td>                            
<input type="text" name="param[30301754][title]" value="VIDEO TITLE" autocomplete="on">
</td>
</tr>

<tr>
<td>File name:</td>
<td>
<input type="text" name="param[30301754][filename]" value="FILE NAME" autocomplete="on">.3gp
</td>
</tr>
<tr>
<td>Description: </td>
<td><textarea name="param[30301754][description]"></textarea>
</td>
</tr>
</tbody></table>

2 个答案:

答案 0 :(得分:2)

假设网页上只有<textarea name="param[xxx][description]">这样的元素,您可以使用jQuery wildcards作为选择器。

$("textarea[name$=\\[description\\]]").val("test");

<强>更新

要将此作为一个简单的书签,您需要提示用户输入他们想要自动填充的文本(或从其他地方获取它),并将整个内容包装在匿名函数中。您还需要对jQuery库的引用。 (有关如何创建书签的更多信息,请参阅this article。)

这应该适合你的情况:

javascript: (function () {
    if (!($ = window.jQuery)) {
        script = document.createElement('script');
        script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js';
        script.onload = doAutoFill;
        document.body.appendChild(script);
    } else {
        doAutoFill();
    }

    function doAutoFill() {
        var textToFill = prompt("Enter text to fill:");
        if (textToFill != null) $("textarea[name$=\\[description\\]]").val(textToFill);
    }
})();

以下是一个更新的小提琴:jsfiddle

答案 1 :(得分:0)

我没有看到你的bookmarklets按钮,所以我做了一些假设。 jsfiddle

var someText = "text for the textbox";
$('#myButtonId').on('click', function(){
  $('textarea').val(someText);
});