CarbonAds.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <script>
  2. export default {
  3. name: 'CarbonAds',
  4. watch: {
  5. '$route' (to, from) {
  6. if (
  7. to.path !== from.path
  8. // Only reload if the ad has been loaded
  9. // otherwise it's possible that the script is appended but
  10. // the ads are not loaded yet. This would result in duplicated ads.
  11. && this.$el.querySelector('#carbonads')
  12. ) {
  13. this.$el.innerHTML = ''
  14. this.load()
  15. }
  16. }
  17. },
  18. mounted () {
  19. this.load()
  20. },
  21. methods: {
  22. load () {
  23. const s = document.createElement('script')
  24. s.id = '_carbonads_js'
  25. s.src = `//cdn.carbonads.com/carbon.js?serve=CEAI6277&placement=dplayerjsorg`
  26. this.$el.appendChild(s)
  27. }
  28. },
  29. render (h) {
  30. return h('div', { class: 'carbon-ads' })
  31. }
  32. }
  33. </script>
  34. <style lang="stylus">
  35. .carbon-ads
  36. min-height 102px
  37. padding 1.5rem 1.5rem 0
  38. margin-bottom -0.5rem
  39. font-size 0.75rem
  40. a
  41. color #444
  42. font-weight normal
  43. display inline
  44. .carbon-img
  45. float left
  46. margin-right 1rem
  47. border 1px solid $borderColor
  48. img
  49. display block
  50. .carbon-poweredby
  51. color #999
  52. display block
  53. margin-top 0.5em
  54. @media (max-width: $MQMobile)
  55. .carbon-ads
  56. .carbon-img img
  57. width 100px
  58. height 77px
  59. </style>