Hi,
I've tried a somewhat different tactics. Instead of using
document.write, I tried createTiddlyButton, like this:
var strTagList = "$1";
var arrTags = strTagList.split(",");
var i;
for (i=0;i<arrTags.length;i++) {
createTiddlyButton(place, "Add "+arrTags[i], "Add "+arrTags[i],
function x() {
var here=story.findContainingTiddler(place);
if (here) {tiddler=store.getTiddler(here.getAttribute("tiddler"));}
var tags = arrTags[i];
store.setTiddlerTag(tiddler.title,true,tags);}, "bold");
}However, no luck. I get the label and the tooltip, but that's it. Any ideas? w On Feb 11, 7:57 am, whatever <[email protected]> wrote: > After playing around for a while, I came to realize that the for-loop > is not the problem, because if I replace the document.write line with > document.write(arrTags[i]+"<br/>"); > I get all the words I enter displayed correctly. > > And if I replace the document.write command with alert, the popup > shows the internal script rendered correctly, like so: > <script label="Add foo" title="Add foo">var > here=story.findContainingTiddler(place); if (here) > {tiddler=store.getTiddler(here.getAttribute("tiddler"))}; > store.setTiddlerTag(tiddler.title,true,"foo"); </script><br/> > > If I replace document.write with return, I get the first word rendered > correctly and can add it as a tag, but the other words are ignored. > Also, in this case JSLint reports "Strange loop". > > The quotes are escaped correctly and I also escaped the internal > script tag (<\/script>). > I'm guessing it has to with the fact that the internal script calls on > the variable from the parent script. Any ideas? > > w > > On Feb 10, 12:46 am, "Mark S." <[email protected]> wrote: > > > Its been awhile since I've written for TW. It looks to me that for > > starters, you may have some quotes escaped incorrectly. > > > I believe that maybe this part > > ..."\">var here... > > > should have been written/escaped like > > > ..."\""+">var here... > > > but my eyes were beginning to water ;-) There could be more. > > > On a larger note, I'm pretty sure that using document.write is the > > wrong way to go about writing code for TW. It might work sometimes, > > but on the other hand it may end up writing some place you never > > intended. Maybe look through some of the various plugins to see what > > TW functions they use to write out stuff. > > > Mark > > > On Feb 9, 10:53 am, whatever <[email protected]> wrote: > > > > Hi! > > > I've been playing around with scripts for adding tags to tiddlers. > > > I've figured out how to do it using fET-generated lists of tiddlers, > > > however, I'm having trouble with passing values through transclusion. > > > I've come up with the following (beware googlewrap): > > > > <<tiddler AddTagsScriptsTEST/testscript with:"tool,device">> > > > <part testscript hidden> > > > <script> > > > var strTagList = "$1"; > > > var arrTags = strTagList.split(","); > > > var i; > > > for (i=0;i<arrTags.length;i++) { > > > document.write("<script label=\"Add "+arrTags[i]+"\" title=\"Add > > > "+arrTags[i]+"\">var here=story.findContainingTiddler(place); if > > > (here) tiddler=store.getTiddler(here.getAttribute(\"tiddler\")); > > > store.setTiddlerTag(tiddler.title,true,\""+arrTags[i]+"\"); </ > > > script><br/>");} > > > > </script> > > > </part> > > > > It should generate two links: > > > Add tool > > > Add device > > > > On click, it would add the corresponding tag to the tiddler. Now, I > > > know that the script in the "document.write" line works, because I've > > > used it before, but I still get an error: > > > > SyntaxError: unterminated string literal > > > ");} > > > > </script> > > > > I've tested it with JSLint (1), but it only reported: > > > Problem at line 5 character 1: document.write can be a form of eval. > > > > I'm guessing the problem is in the first part, however, JavaScript is > > > not my strong suite, so if anyone has any suggestions, I'd be > > > grateful. > > > > w > > > > (1)http://www.jslint.com/ -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/tiddlywiki?hl=en.

