Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 07-29-2014, 04:21 AM
darnoldy darnoldy is offline
 
Join Date: Dec 2004
Posts: 234
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default A BB Code to use og: metas

Folks-

I want to use the og: data to display links to external pages. I thought I could make a BB code that uses javaScript to go get the info. It turns out I can't (at least without some help). It has been many ears since I tried to write javascript—and I'm really rusty.

First, I tried:
Code:
function getMetas (theURL){
    var theTarget = new document()
    theTarget.location.href = theURL
    alert(theTarget.location.href)
    if(theTarget.document.getElementsByName("meta").length>0){
        alert("meta tags "&& theTarget.document.getElementsByName("meta").length)
    }else{
        alert("no meta tags")
    }
}
which gave me an error that document is not a constructor.

When I tried:
Code:
function getMetas (theURL){
    var theTarget = window.open()
    theTarget.location.href = theURL
    alert(theTarget.location.href)
    if(theTarget.document.getElementsByName("meta").length>0){
        alert("meta tags "&& theTarget.document.getElementsByName("meta").length)
    }else{
        alert("no meta tags")
    }
}
The script does not give an error message, but the first alert displays the message "about:blank"—I assume because the page hasn't had time to load.

Am I missing something small or am I on a fool's errand? Any helpful hints you can share?
Reply With Quote
  #2  
Old 07-29-2014, 09:18 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, I'm not a javascript expert so I don't know exactly why that isn't working. You're probably right that it's because the document hasn't loaded yet. But I'm not sure that having a user's browser load the page in a separate window every time one of those links is in a post is a good idea. Anyway, I did 5 minutes of research on the subject so I'm obviously not well informed, but it seems like there is a function that will create a new document from a url, but it's only in newer browsers. But without using that, I think you could parse it as XML or even just as a string, instead of loading it into a DOM object.

Doing a search for "open graph protocol parsers" I notice that there are parsers for php, so you might be able to figure out a server-side solution. Maybe when the post is being saved check it for one of those bbcodes and if it's found, parse the document for the og data and do a replacement. But I'm not sure what would happen if the user wanted to edit the post later.
Reply With Quote
  #3  
Old 07-29-2014, 02:24 PM
darnoldy darnoldy is offline
 
Join Date: Dec 2004
Posts: 234
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
But I'm not sure that having a user's browser load the page in a separate window every time one of those links is in a post is a good idea.
Yeh, that would be a bad idea! My thought was that the script would run at the time the message was created, and then the proper data would become part of the message (like how the quote tag works). Having the target page open in a new window while the script is running (then close the window) is not ideal?it was just how I could get it to work with my limited skill.

Quote:
but it seems like there is a function that will create a new document from a url, but it's only in newer browsers. But without using that, I think you could parse it as XML or even just as a string, instead of loading it into a DOM object.
hmm..have to do more research.

Quote:
I notice that there are parsers for php, so you might be able to figure out a server-side solution.
I was trying to avoid php?mostly because I am even less familiar with that than javascript.

Thaks for your help.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:05 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03858 seconds
  • Memory Usage 2,172KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete