Hi whatever, Why don't you just create real TW macros? It will make things lot easier and more generalized. Have a look at [1][2] it should give you the basic structure.
have fun! -m [1] http://helloworld.tiddlyspace.com/#HelloWorldButtonPlugin [2] http://helloworld.tiddlyspace.com/#HelloWorldNamedParamsPlugin On Feb 26, 9:28 am, whatever <[email protected]> wrote: > 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.

